Configure your Elgato Stream Deck on Linux with a modern UI and extensible plugin system.
- Works with all Elgato Stream Deck models (Original, Mini, XL, MK.2, Plus, Pedal, Neo)
- Media controls, volume, app launchers, custom commands
- Elgato Key Light integration
- OBS Studio control
- Plugin system for custom integrations
- Runs on Wayland and X11
curl -sSL https://raw.githubusercontent.com/rodgtr1/deckmanager/main/install.sh | bashSupports Arch, Debian, Fedora, and derivatives.
- Plug in your Stream Deck
- Run
deckmanager - Click any button in the UI
- Choose an action and configure it
- Click Save
Configuration is stored in ~/.config/deckmanager/bindings.toml.
Deck Manager separates core functionality from plugins:
- Media playback controls (play/pause, next, previous)
- System volume and mute
- Run shell commands
- Open applications and URLs
- Multi-action sequences
- Button images and labels
| Plugin | Feature Flag | Description |
|---|---|---|
| Elgato | plugin-elgato |
Key Light brightness and color control |
| OBS | plugin-obs |
Scene switching, recording, streaming |
Plugins are compiled in via Cargo feature flags. To build without OBS support:
cargo build --release --no-default-features --features plugin-elgatoPlugins extend Deck Manager with new capabilities. Each plugin:
- Provides actions that can be bound to buttons/encoders
- Handles input events
- Can maintain state (e.g., "is muted?")
- Add feature flag to
Cargo.toml - Create
src/plugins/yourplugin/directory - Implement the
Plugintrait - Register in
src/lib.rs - Add TypeScript types in
src/types.ts
See PLUGIN_API.md for the full guide.
- Philips Hue / Home Assistant
- Spotify / Tidal
- Discord mute/deafen
- Keyboard macros
- MIDI control
# Dependencies (Arch)
sudo pacman -S rust npm webkit2gtk-4.1 gtk3 hidapi
# Build
git clone https://github.com/rodgtr1/deckmanager
cd deckmanager
npm ci
npm run tauri buildDevice not detected: Install udev rules and replug the device:
sudo wget https://raw.githubusercontent.com/rodgtr1/deckmanager/main/src-tauri/scripts/70-streamdeck.rules -O /etc/udev/rules.d/70-streamdeck.rules
sudo udevadm control --reload-rules && sudo udevadm triggerBlank window on Wayland:
GDK_BACKEND=x11 deckmanagerMIT