feat: add ujust get-couchside (phone remote & dashboard for the couch) - #5352
Open
emerytech wants to merge 1 commit into
Open
feat: add ujust get-couchside (phone remote & dashboard for the couch)#5352emerytech wants to merge 1 commit into
emerytech wants to merge 1 commit into
Conversation
Adds a get-couchside recipe following the get-emudeck pattern (status | install | uninstall + interactive ugum menu). Couchside is a phone app (iOS/Android) whose box-side agent turns the machine into a phone-controlled console: launch games, switch between Game Mode and Desktop, trackpad/keyboard input, volume, and power — LAN-only, token authenticated, no cloud accounts. The agent is MIT licensed, pure Python stdlib, and the installer verifies an Ed25519 signature over every fetched file before installing (same curl|sh + systemd service shape as Decky Loader). Uninstall removes the service, the privileged helper and its units, udev rules, and the Steam tile. Status detection checks the systemd unit plus the installed daemon, matching what the installer actually creates.
emerytech
requested review from
EyeCantCU,
HikariKnight,
KyleGospo and
noelmiller
as code owners
August 1, 2026 04:09
Up to standards ✅🟢 Issues
|
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Adds a
get-couchsiderecipe to82-bazzite-apps.just, following theget-emudeckshape exactly:status | install | uninstallplus theinteractive
ugummenu when run bare. No yafti/portal change in this PR —recipe only.
What Couchside is
Couchside turns a phone (iOS/Android) into the
dashboard, remote console, and game controller for a living-room Bazzite/
SteamOS machine: launch games, switch Game Mode ↔ Desktop, trackpad +
keyboard input, volume/TV control, power. LAN-only, bearer-token
authenticated, no cloud, no accounts, no analytics. The box-side agent is
MIT licensed, pure Python 3 stdlib, and runs as the desktop user (not root).
Why this shape
curl | bashof aninstaller that sets up a systemd service. The installer verifies an
Ed25519 signature over every fetched file (SHA256SUMS + SHA256SUMS.sig
against a pinned public key) before installing anything — a corrupted or
tampered fetch refuses to install. Verification code is in the installer
itself: https://github.com/emerytech/couchside/blob/main/install.sh
statuschecks the systemd unit + installed daemon — what the installeractually creates, not a filename heuristic.
uninstallis complete and testable (ujust get-couchside uninstall):service, privileged helper + its units, udev rules, sudoers (prompted),
Steam tile, Wake-on-LAN link.
Anticipating the review questions
input selects entries, never becomes a command/path/shell string. Since
2.9.69 the root-side work goes through a small socket-gated helper (eight
fixed verbs, SO_PEERCRED-checked) rather than broad sudo rules.
that is the product. It is reachable only on the LAN and only with the
pairing token the box displays.
installer URL is stable (it is a signed release asset mirrored at
couchside.tv).
Happy to adjust naming, grouping, or scope to fit — and no hard feelings if
the portal bar is "come back with more users"; the recipe alone already
gives Bazzite users a one-liner.