feat(foxtrot): controller-only couch gaming (Steam + gamescope session + greetd greeter) #666
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "foxtrot-couch-gaming"
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?
Turns foxtrot into a SteamOS-like couch-gaming machine driven entirely by the
Steam Controller (lid closed), without compromising its primary role as a
laptop. Squashes the previously-stacked #656 / #665 / #664 into one changeset,
rebased onto current
main.Steam migration (flatpak →
programs.steam)The Flatpak Steam's sandbox always binds the host (niri) display sockets, so a
host gamescope could never contain it — Steam escaped onto niri. nix-managed
Steam embeds in gamescope properly. 332G library + native saves moved in place
via btrfs rename (no re-download).
Seated "Gaming (gamescope)" wayland-session + controller exit
A session the display manager launches on its own DRM seat, so gamescope owns
input and Steam Input drives the cursor natively (the Steam Deck model) — the only
way to get controller-as-mouse. Nested in niri gamescope can't own the seat and
Steam falls back to a frozen XTest cursor. DM-seating also gives Steam a real login
session so its bwrap/runtime work. A
steamos-session-selectstub turns Steam's"Switch to Desktop" into an exit (touch a sentinel →
foxtrot-gamemode-exit.pathquits Steam + gamescope → greeter).
greetd + ReGreet + wvkbd greeter (controller-only login)
plasma-login-manager has no controller-usable OSK (touch-gated keyboard;
QT_IM_MODULEcan't reach the greeter's separate PAM session). Replaced withgreetd running ReGreet inside a minimal niri compositor + wvkbd as an always-on
layer-shell OSK. ReGreet's cage default is single-window (no room for an OSK); niri
renders layer-shell so wvkbd floats above the fullscreen greeter and stays clickable
with the controller trackpad.
XDG_DATA_DIRS→sessionData.desktopsso ReGreet listsniri + Gaming;
security.pam.services.greetd.fprintAuth = false.Validation
Deployed to foxtrot (boot + reboot). Login confirmed live: ReGreet + OSK shown,
logged in with only the Steam Controller. Steam runs seated in the gamescope session
(no cap/bwrap breakage). Still to confirm before relying on it fully:
controller-as-mouse actually moving the cursor in-game.
Follow-ups (not blockers)
pam_gnome_keyringinto greetd if wifi PSKs start re-prompting.
🤖 Generated with Claude Code
https://claude.ai/code/session_01XX14i2xvfiY2TrYzm3A64c
View command line instructions
Checkout
From your project repository, check out a new branch and test the changes.