Install: name what waits for a restart; uninstall survives a failed Nix uninstall

A fresh install into a running session left the keyboard layout and the
SteamVR dashboard patches (VR pet, the VR keyboard's suggestion strip, ...)
silently off until a reboot: gamescope reads XKB_DEFAULT_* only at its
start, and SteamVR opens its DevTools port (VRWebHelper.DebuggerEnabled)
only at its start. Neither can be applied at runtime.

- install.sh restart-check (run on every switch by session.nix, and by
  install at its end): compares the keyboard-layout drop-in with the
  running gamescope session's environment and checks whether SteamVR runs
  without port 8087; install ends with "Restart once" listing them.
- uninstall: a failing nix-installer uninstall (e.g. /nix busy) no longer
  aborts the script before the ~/.config/home-manager link and Home
  Manager state are removed; it says to reboot and run uninstall again.
- cleanup check: restart-check on fake cgroup/proc dirs.
This commit is contained in:
Pierre Kisters committed 2026-10-01 18:06:50 +02:00
1 parent 92e9d17e09
commit 6b12d5329f
7 files changed
+191 -14

No files matched your search

+8 -1
View File
@@ -23,6 +23,9 @@ running") and skips `reloadSystemd`.
- After every switch this module reloads the Steam session's user manager
and applies `session.services.start` / `stop` / `restart`, which other
modules fill (you can add your own units).
- Then it names what the running session can't pick up until a restart:
the [keyboard layout](#keyboard-layout) and the
[SteamVR debugger](steamvr-debugger.md) of the dashboard patches.
**Configuration:** apps that keep secrets in the wallet get a
[launcher](launchers.md) with `keyring.enable`. Another app that must reach
@@ -104,7 +107,11 @@ the link dangles, which is the same as no menu.
`~/.config/environment.d` isn't read on the Frame.
**What you get:** the layout in the Steam session, from the next Steam
session start. The layout also picks the
session start (e.g. reboot): gamescope reads it only when it starts, and
sends its own keymap to the X apps again whenever the VR keyboard types, so
it can't be set in a running session. While the running session has another
layout, the switch (and `install.sh install` at its end) says so
(`install.sh restart-check`). The layout also picks the
[VR keyboard](keyboard.md#swipe-and-suggestions)'s default dictionary
language.