streamdeckd
A Linux daemon for Elgato Stream Deck devices. Control your Stream Deck with custom buttons, macros, and per-application configurations.
What is it?
streamdeckd runs in the background and manages your Elgato Stream Deck devices on Linux. It lets you:
- Create custom button layouts with icons and actions
- Switch between pages for unlimited buttons
- Set per-application profiles - buttons change based on what app you're using
- Control multiple Stream Decks at once
- Extend with plugins for advanced functionality
Quick Start
-
Set up device permissions:
# Copy udev rules
sudo curl -o /etc/udev/rules.d/50-elgato.rules \
https://raw.githubusercontent.com/unix-streamdeck/streamdeckd/master/50-elgato.rules
# Reload rules
sudo udevadm control --reload-rules
-
Build and run:
go build
./streamdeckd
-
Configure your buttons by editing $XDG_CONFIG_HOME/.streamdeck-config.json
Each button can perform different actions:
- Command - Run any shell command
- Keybind - Simulate keyboard shortcuts
- URL - Open websites
- Page Switch - Navigate between button layouts
- Brightness - Adjust Stream Deck brightness
- Key Hold - Simulate holding down a key
- Custom Plugin Actions - Any action you could want
Example Configuration
{
"decks": [{
"serial": "AB12C3D45678",
"pages": [[
{
"application": {
"": {
"command": "notify-send 'Hello!'",
"icon": "~/icons/hello.png"
}
}
}
]]
}]
}
For a graphical interface, use streamdeckui-wails.
Documentation
License
See LICENSE for details.