Skip to content

Add Linux support via OpenDeck#62

Open
thameem-abbas wants to merge 1 commit into
ChrisRegado:masterfrom
thameem-abbas:add-linux-support
Open

Add Linux support via OpenDeck#62
thameem-abbas wants to merge 1 commit into
ChrisRegado:masterfrom
thameem-abbas:add-linux-support

Conversation

@thameem-abbas
Copy link
Copy Markdown

Summary

  • Adds Linux as a build target for the Stream Deck plugin, enabling use with OpenDeck on Linux
  • Produces a separate Linux-inclusive .streamDeckPlugin artifact alongside the existing Elgato-validated macOS/Windows package (no regression for existing users)
  • Adds CodePathLin and Platform: linux to the plugin manifest (OpenDeck extensions to the Elgato SDK format)
  • Makes macholib/altgraph dependencies macOS-only via PEP 508 environment markers
  • CI strips Linux-specific manifest entries before Elgato CLI validation, then restores them for the Linux-inclusive package

Test plan

  • pip install -r requirements.txt on Linux correctly skips macholib/altgraph
  • All 28 unit tests pass on Linux
  • PyInstaller produces a working Linux ELF executable
  • Plugin registers and launches successfully in OpenDeck on Fedora
  • Browser extension connects to the plugin over WebSocket on Linux
  • CI workflow produces both artifacts (needs GH Actions run)
  • Elgato-validated package still installs correctly on macOS/Windows (no regression)

🤖 Generated with Claude Code

The Elgato Stream Deck app doesn't support Linux, but OpenDeck (an
open-source alternative) does and is compatible with Elgato SDK plugins.
This adds Linux as a build target and produces a separate Linux-inclusive
.streamDeckPlugin package for OpenDeck users.

Changes:
- Add CodePathLin and Platform linux to plugin manifest (OpenDeck extensions)
- Add Linux to CI build matrix (ubuntu-latest, PyInstaller)
- Strip Linux-specific manifest entries before Elgato CLI validation,
  then restore and zip into a separate Linux-inclusive artifact
- Make macholib/altgraph macOS-only via PEP 508 environment markers
- Add Linux install, dev setup, and build instructions to README
- Update release workflow to attach Linux-inclusive artifact

Tested end-to-end on Fedora with OpenDeck: plugin registers, launches
the binary, and communicates with the browser extension over WebSocket.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
@thameem-abbas
Copy link
Copy Markdown
Author

Tested on

Component Version
OS Fedora Linux 43 (Workstation Edition)
Kernel 6.7.5-200.fc39.x86_64
Desktop GNOME Shell 49.2
Stream Deck app OpenDeck 2.11.1
Python 3.12.12
Browser Google Chrome 143.0.7499.169

Plugin registers, launches, and communicates with the browser extension successfully.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant