A powerful, customizable Stream Dock 293v3 controller for Linux.
StreamDock lets you define your entire deck configuration in a simple YAML file. It supports automatic layout switching based on the focused window, complex macros, system monitoring, and complete visual customization using images or text.
- 🎯 YAML Configuration - Simple, readable config files.
- 🪟 Context-Aware - Automatically switch layouts when you open Firefox, VSCode, or Spotify.
- 🔒 Secure - Auto-lock monitor turns off the display when your session locks.
- 🐧 Linux Native - Built for X11 and Wayland (KDE/GNOME).
- 🎨 Visuals - Support for PNG, JPG, GIF, SVG, and dynamic text generation.
- 🛠️ Hackable - Pure Python with a plugin-friendly architecture.
-
Install system dependencies (see Installation Guide for Ubuntu/Debian):
# Arch Linux example sudo pacman -S python python-pip hidapi libusb xdotool -
Set up the environment:
python -m venv venv source venv/bin/activate pip install -r requirements.txt -
Setup Device Permissions: Follow the Device Setup Guide to configure
udevrules. This is critical to prevent the "Mouse Keys" bug. -
Run:
cd src python main.py
The documentation is organized into the following sections:
- Installation Guide - Detailed dependency lists and setup steps.
- Device Setup - Important:
udevrules and hardware configuration. - Troubleshooting - Fixes for common issues (Device not found, Permissions).
- Dependency Check: Run
python src/main.py --check-depsto verify your environment readiness.
- Configuration Guide - How to write
config.yml, define Keys, and create Layouts. - Actions Reference - Dictionary of all available commands (
LAUNCH_APP,KEY_PRESS,DBUS, etc.).
Learn by example with these ready-to-use configurations:
- Basic App Launcher - A simple menu to start your favorite apps.
- Media Controller - Volume, Mute, and Spotify controls.
- The Productivity Setup - Advanced context-switching rules (e.g., auto-show browser keys when Firefox is focused).
This project is licensed under the MIT License.
- Based on StreamDock-Device-SDK by MiraboxSpace.
- Powered by
libhidapi,cairosvg, andpyudev.