My personal streamdeck controller program for Linux
  • Python 98%
  • Makefile 2%
Find a file
2026-05-07 17:08:34 +02:00
data feat: restructure into streamdeck_controller package with Adwaita GUI and release tooling 2026-04-23 13:19:02 +00:00
icons Add extra files 2026-04-23 15:08:42 +02:00
streamdeck_controller fix: escape ampersand in xdotool description for GTK markup 2026-04-23 14:19:48 +00:00
.gitignore Add streamdeck-controller to .gitignore 2026-04-23 15:03:51 +02:00
Makefile feat: restructure into streamdeck_controller package with Adwaita GUI and release tooling 2026-04-23 13:19:02 +00:00
pyproject.toml feat: tabs in Adwaita window, settings key opens window, launch-or-focus, dynamic app tabs, dep checking 2026-04-23 14:10:17 +00:00
README.md Update README.md 2026-05-07 17:08:34 +02:00

StreamDeck Controller

A Linux controller for the Elgato Stream Deck with an Adwaita (GTK 4 / libadwaita) settings window.

Features

  • Tabs: Apps, Volume, Media (auto-added when music plays), Steam (auto-added when Steam is open)
  • Settings tab on the deck: brightness control, deck reset, documentation links
  • GUI window: shows connection status, device model, brightness slider
  • Closing the window hides it — the controller keeps running in the background
  • Use Ctrl+Q or the app menu → Quit to stop the application completely

Requirements

System packages

python3-gi  gir1.2-adw-1  gir1.2-gtk-4.0   # GTK / Adwaita
playerctl                                    # media control
pactl  (pulseaudio-utils or pipewire-pulse)  # volume control
xdotool                                      # Steam detection

Python packages

pip install streamdeck Pillow PyGObject

Or install all Python dependencies from the project:

pip install .

Running (development)

python3 -m streamdeck_controller

Or after install:

streamdeck-controller

Installation

make install          # installs to /usr/local by default
make install PREFIX=/usr   # system-wide

Build a wheel

make build            # produces dist/streamdeck_controller-*.whl

Uninstall

make uninstall