mirror of
https://github.com/safijari/openpuck.git
synced 2026-11-03 22:30:22 +00:00
[PR #327] ReversePuck Deck app: run without sudo, clearer touchscreen UI, and a Game Mode AppImage #288
Labels
No labels
pull-request
wontfix
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set
Reference
safijari/openpuck#288
Loading…
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
📋 Pull Request Information
Original PR: https://github.com/safijari/openpuck/pull/327
Author: @MisterAnderson91
Created: 10/25/2026
Status: 🔄 Open
Base:
main← Head:reversepuck-deck-app-appimage📝 Commits (2)
7ddc806ReversePuck app: run without sudo, hand the Deck pad back reliably, per-pad haptics, touchscreen UI0ad3c45ReversePuck: Steam Deck app as an AppImage that runs from Game Mode, built by CI📊 Changes
12 files changed (+705 additions, -64 deletions)
View changed files
➕
.github/workflows/reversepuck-appimage.yml(+101 -0)📝
README.md(+1 -1)📝
ReversePuck/README.md(+37 -13)📝
ReversePuck/ReversePuck(+3 -2)📝
ReversePuck/frame.py(+10 -0)📝
ReversePuck/input_source.py(+106 -15)📝
ReversePuck/openctrl.py(+26 -2)➕
ReversePuck/packaging/AppRun(+11 -0)➕
ReversePuck/packaging/build-appimage.sh(+162 -0)➕
ReversePuck/packaging/make_icon.py(+53 -0)➕
ReversePuck/packaging/reversepuck.desktop(+10 -0)📝
ReversePuck/ui.py(+185 -31)📄 Description
ReversePuck Deck app fixes and a one-file AppImage: the app runs without
sudo ./setup.sh, reliably hands the Deck's controls back, plays trackpad haptics and has a clearer touchscreen UI; as an AppImage it launches from Game Mode with nouvor network.One of three independent ReversePuck PRs (firmware fixes, pairing commands, Deck app + AppImage). They touch separate files and can be merged in any order. Trackpad haptics need the firmware fixes PR; with older firmware everything else works and the haptics just don't arrive.
Summary
7ddc806Deck app: no sudo, reliable hand-back, haptics, new touchscreen UI0ad3c45The fixed Deck app as a standalone AppImage (no install needed) that runs from Game Mode, built by CI for every changeCommits in detail
1. ReversePuck app: run without sudo, hand the Deck pad back reliably, per-pad haptics, touchscreen UI (
ReversePuck/*.py, launcher comment, README)These apply to the existing
ReversePuck(uv) script as well as the AppImage in commit 2.sudo: SteamOS's Steam udev rule already gives the session user every28DEdevice, the dongle's CDC included, sosetup.shisn't needed.28DE:1205,/dev/ttyACM0) as the dongle.grab()fails loudly instead of forwarding a dead neutral pad.PULSEframes with the Deck's0x8Fpulse (the Deck ignores the0xEBrumble).setup.shis only needed off SteamOS.2. ReversePuck: Steam Deck app as an AppImage that runs from Game Mode, built by CI (
ReversePuck/packaging/, new workflow, READMEs)Builds on commit 1: it packages that app, unchanged.
ReversePuck/packaging/build-appimage.shbundles a portable Python 3.12 with the manylinux wheels for pygame, pyserial and pyusb. It uses uruntime (pinned, SHA-256 checked) instead of the stock runtime: Steam starts Game Mode games withno_new_privs, which stopsfusermount, and the stock runtime then just exits. uruntime falls back to extract-and-run..github/workflows/reversepuck-appimage.ymlbuilds the AppImage for every push/PR touchingReversePuck/(an Actions artifact) and attaches it to releases.uvscript stays the alternative.Testing
Hardware: Steam Deck OLED with a ReversePuck (Pro Micro nRF52840), an OpenPuck on 0.9.51, and the host running Steam on macOS.
Not tested: the
uvscript from Game Mode, and hosts other than macOS.🤖 Generated with Claude Code
🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.