Steam's VirtualKeyboardManager keeps the props of the last focused Steam text
field (m_ActiveElementProps) after leaving the dashboard. With a search box
there, the VR keyboard for a gamescope window showed "Search" on Enter and
its onEnterKeyPress returned "VKClose", hiding the keyboard instead of
sending Return. While the keyboard serves something other than this Steam
UI, ignore those props and the dismiss-on-Enter flag.
- status lists every Home Manager user service instead of a hardcoded
docker.service (that's not a steam-frame-nix module)
- unique backup suffix per run (Home Manager aborts if *.backup exists)
- uninstall only force-kills processes still running from /nix/store
- drop fallbacks this installer never needs: old `nix show-config` /
`nix store ping`, the legacy per-user HM profile path, a PATH fallback,
grep-parsing the receipt without jq, `--flake=value`
- drop cruft: v4 DispatchKeypress undo, unused VKM import and
__vrkbdPatched flag, redundant VRKBD_DISPLAY env in the unit
- one wrap() helper for all replaced functions; key names for the
stylesheet derived from the key definitions instead of repeated
- unpatch: restore every layout ever patched (also ones disabled since)
and the remembered component class instead of walking the tree again
- helper: debounce re-injects after bursts of new JS contexts; resolve
pending DevTools calls when the connection closes
- arrow icons vertically centered again (hint stays at the bottom edge)
- updated header comments
- every bottom-row key gets explicit normal/shift/AltGr variants: in Steam's
stock row the close icon jumps with Shift and keys turn into empty
full-width panels with AltGr
- AltGr + arrows: Pos1 / End / PgUp / PgDn (shown as small hints)
- Shift + arrows go through the helper as real Shift+arrow (Steam's own
arrow path drops Shift), so text selection works
install.sh installs Nix (nix-installer, steam-deck planner, flakes
enabled) and activates a Home Manager configuration, creating one from
the new flake template if there is none; uninstall stops Home Manager's
user services, runs home-manager uninstall and removes Nix and per-user
leftovers; status shows the current state. Works piped from curl.
- steamFrame.vrKeyboard -> steamFrame.steamKeyboardPatch (module, service
and script names follow): it patches Steam's own on-screen keyboard
- clipboardSync.enable defaults to true: without it the nested desktop's
clipboard is isolated
- clipboard-sync: stop stale builds and duplicates, prefer the instance
started in the nested desktop, only start a new one when switching from
the nested desktop (an instance inherits the switching shell's session)
- vr-keyboard: the helper reverts the patch on SIGTERM (vrkbd-unpatch.js);
disabling the module stops the service via the new
steamFrame.userServices.stop, so the stock keyboard is back immediately
Portal fix, Steam-session keyboard layout, VR keyboard patch, hidden
apps, clipboard-sync and a Firefox Flatpak launcher, all under
steamFrame.*, plus the outer-session user-services mechanism.