- Rust 54.3%
- Svelte 25.7%
- HTML 5.5%
- CSS 5%
- TypeScript 4.9%
- Other 4.6%
|
|
||
|---|---|---|
| .github | ||
| .vscode | ||
| docs | ||
| flatpak | ||
| plugins | ||
| scripts | ||
| src | ||
| src-tauri | ||
| static | ||
| .gitattributes | ||
| .gitignore | ||
| .gitmodules | ||
| AGENTS.md | ||
| build-plugins.ts | ||
| deno.json | ||
| deno.lock | ||
| install_opendeck.sh | ||
| install_opendeckng.sh | ||
| LICENSE.md | ||
| OPENDECKNG_ROADMAP.md | ||
| package-lock.json | ||
| package.json | ||
| product_name.txt | ||
| QUALITY_PLAN.md | ||
| README.md | ||
| svelte.config.ts | ||
| tsconfig.json | ||
| vite.config.ts | ||
OpenDeckNG
Next-generation Linux software for your Elgato Stream Deck
OpenDeckNG is a community-driven Linux-focused fork of OpenDeck, a desktop application for using stream controller devices like the Elgato Stream Deck. OpenDeckNG brings native Linux desktop integration, GIF animation support, and an enhanced starter pack specifically designed for Linux users running CachyOS, Arch, and Hyprland.
Only Elgato hardware is officially supported, but plugins are available for support for other hardware vendors.
Tip
No Stream Deck in front of you? Use OpenDeck with Tacto to turn any smartphone into one!
What's Different in OpenDeckNG?
- 🐧 Linux-first: Specialized for CachyOS/Arch with Hyprland/Sway/i3 support
- 🎬 Native GIF Animation: GIFs play directly on your Stream Deck buttons with automatic frame extraction and looping
- 🎨 Profile Backgrounds: Set background images and colors per profile (experimental)
- 🔊 Linux Starter Pack: Built-in actions for MPRIS media control, PipeWire/PulseAudio volume, system monitoring, Hyprland workspace switching, and counters
- GPL-3.0+: Free and open source, forever
Why use OpenDeckNG over OpenDeck?
- Native Linux integration: No Wine required for core Linux desktop features
- GIF support: Plugins can send animated GIFs that play natively on the device
- Hyprland-ready: Switch workspaces, kill windows, toggle floating/fullscreen directly
- PipeWire-native: Volume control works out of the box on modern Linux desktops
Installation
Linux (Recommended)
Arch / CachyOS / Manjaro
# From AUR (build from source)
yay -S opendeckng
# Or binary release
yay -S opendeckng-bin
Other distributions
Tip
For automated installation:
curl -sSL https://raw.githubusercontent.com/stefor74/OpenDeckNG/main/install_opendeckng.sh | bash
- Download the latest release from GitHub Releases.
- Install the appropriate udev subsystem rules:
sudo curl -o /etc/udev/rules.d/40-streamdeck.rules https://raw.githubusercontent.com/OpenActionAPI/rust-elgato-streamdeck/main/40-streamdeck.rules sudo udevadm control --reload-rules && sudo udevadm trigger
Dependencies
playerctl– for media control actionswpctl(PipeWire) orpactl(PulseAudio) – for volume controlhyprctl– for Hyprland integration (optional)
Windows / macOS
OpenDeckNG is primarily focused on Linux. For Windows and macOS, please use the upstream OpenDeck project.
Linux Starter Pack Actions
OpenDeckNG includes a built-in plugin with Linux-native actions:
| Action | Description | Requirements |
|---|---|---|
| Media Control | Play/Pause, Next, Previous, Stop, Mute | playerctl |
| Audio Volume | Volume Up/Down (dial), Mute Toggle | wpctl or pactl |
| System Monitor | CPU, RAM, Network usage display | none |
| Hyprland Workspace | Switch workspaces, toggle floating, kill window | hyprland |
| Counter | Increment/decrement counter, timer, stopwatch | none |
Support
Support forums
Building from source
You'll need the Tauri prerequisites, Deno, and on Linux libudev and libdbus.
deno install
deno task build:plugins
deno task tauri dev # development
deno task tauri build # production build
Contributing
Before each commit:
cargo clippy– no warningscargo fmt– formatteddeno checkanddeno lint– clean TypeScriptdeno task check– clean Sveltedeno fmt --unstable-component– formatted frontend
Use Conventional Commits and sign your commits.
OpenDeckNG is licensed under the GNU General Public License version 3.0 or later.



