Next-gen stream controller for Linux
  • Rust 54.3%
  • Svelte 25.7%
  • HTML 5.5%
  • CSS 5%
  • TypeScript 4.9%
  • Other 4.6%
Find a file
jaffari cdbe35f79f
Some checks failed
CI / lint-and-test (push) Has been cancelled
fix: flatpak manifest - deno 2.9.0, correct sha256, zip structure, build-options
2026-06-25 22:07:22 +02:00
.github packaging: update AUR PKGBUILDs to 2.12.0, add Flatpak manifest, fix AppImage CI, productName consistency 2026-06-25 09:16:04 +02:00
.vscode chore: add Visual Studio Code workspace configuration 2025-12-03 11:13:21 +00:00
docs packaging: update AUR PKGBUILDs to 2.12.0, add Flatpak manifest, fix AppImage CI, productName consistency 2026-06-25 09:16:04 +02:00
flatpak fix: flatpak manifest - deno 2.9.0, correct sha256, zip structure, build-options 2026-06-25 22:07:22 +02:00
plugins fix: P2.6-P2.9 (reactive side-effects, JSON.parse, ts-expect-error, async plugin commands) 2026-06-25 01:39:00 +02:00
scripts chore(icons): generate OpenDeckNG branded icons 2026-05-23 15:52:29 +02:00
src fix: resolve all deno task check type errors (0 errors, 4 a11y warnings remain) 2026-06-25 08:09:18 +02:00
src-tauri packaging: update AUR PKGBUILDs to 2.12.0, add Flatpak manifest, fix AppImage CI, productName consistency 2026-06-25 09:16:04 +02:00
static chore(icons): generate OpenDeckNG branded icons 2026-05-23 15:52:29 +02:00
.gitattributes fix: P3.3 P3.10 P3.11 (CORS origin, gitattributes path, withGlobalTauri false) 2026-06-25 01:40:15 +02:00
.gitignore packaging: update AUR PKGBUILDs to 2.12.0, add Flatpak manifest, fix AppImage CI, productName consistency 2026-06-25 09:16:04 +02:00
.gitmodules refactor: bring starter pack plugin source in-tree 2025-05-17 13:39:47 +01:00
AGENTS.md rebrand: OpenDeck → OpenDeckNG 2026-05-23 14:23:18 +02:00
build-plugins.ts feat: OpenDeckNG Linux Starter Pack + GIF + Backgrounds + Rebrand 2026-05-23 15:36:05 +02:00
deno.json fix: align TS types with Rust structs, re-enable no-explicit-any lint (P1.6, P1.7) 2026-06-24 20:14:21 +02:00
deno.lock chore: sync lockfile changes made by deno install after earlier commit regarding displaying GFM alerts 2026-02-08 20:17:49 +00:00
install_opendeck.sh fix: avoid process substitution in automated installation script one-liner to ensure it works across non-POSIX shells like fish 2026-04-26 14:45:35 +01:00
install_opendeckng.sh feat: OpenDeckNG Linux Starter Pack + GIF + Backgrounds + Rebrand 2026-05-23 15:36:05 +02:00
LICENSE.md Relicense under the GNU GPL v3 2024-09-23 16:53:13 +01:00
OPENDECKNG_ROADMAP.md docs(roadmap): mark Notification as completed 2026-05-23 16:01:35 +02:00
package-lock.json feat: replace all invoke() with safeInvoke wrapper for error handling (P1.5) 2026-06-24 20:24:26 +02:00
package.json feat: OpenDeckNG Linux Starter Pack + GIF + Backgrounds + Rebrand 2026-05-23 15:36:05 +02:00
product_name.txt rebrand: OpenDeck → OpenDeckNG 2026-05-23 14:23:18 +02:00
QUALITY_PLAN.md setup: OpenDeckNG install routine 2026-05-23 14:43:10 +02:00
README.md feat: OpenDeckNG Linux Starter Pack + GIF + Backgrounds + Rebrand 2026-05-23 15:36:05 +02:00
svelte.config.ts refactor: replace svelte.config.js with svelte.config.ts to eliminate untyped code 2026-02-18 11:01:08 +00:00
tsconfig.json feat: use alternative ports if default ports are already in use 2025-10-10 18:56:32 +01:00
vite.config.ts chore: ignore Rust target directories in Vite watcher config 2025-06-01 19:15:39 +01:00

OpenDeckNG

Next-generation Linux software for your Elgato Stream Deck

Main menu More screenshots

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

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 actions
  • wpctl (PipeWire) or pactl (PulseAudio) for volume control
  • hyprctl 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:

  1. cargo clippy no warnings
  2. cargo fmt formatted
  3. deno check and deno lint clean TypeScript
  4. deno task check clean Svelte
  5. deno 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.

Showcase

Main menu Multi action Plugins Profiles