# Changes outside Nix Everything not listed here is a Home Manager link into the Nix store or lives in memory (the [UI patches](ui-patches.md)). ## Written at runtime | Path | Feature | Lifetime | Removed by | |---|---|---|---| | `VRWebHelper.DebuggerEnabled` in `~/.config/openvr/config/steamvr.vrsettings` | [SteamVR debugger](steamvr-debugger.md) | only while SteamVR runs | SteamVR stopping (runtime drop-in below); `steam-frame-nix-cleanup` while SteamVR is stopped | | `~/.local/state/steam-frame-nix/steamvr-debugger.armed` | SteamVR debugger: the key's previous value | while SteamVR runs; after a power loss until the next SteamVR start or cleanup | SteamVR stopping; `steam-frame-nix-cleanup` | | `/run/user/1000/systemd/user/steamvr.service.d/50-steam-frame-nix-debugger.conf`, `/run/user/1000/steam-frame-nix/steamvr-debugger-restore` | SteamVR debugger: puts the key back when SteamVR stops, without Nix | until reboot (tmpfs) | reboot; `steam-frame-nix-cleanup` while SteamVR is stopped and the debugger is off | | `~/.local/state/steam-frame-nix/ui-patches/.json` | [persistent state](ui-patches.md#persistent-state) of dashboard patches: window control bar placements (`frame-controls`), "Steam hidden" (`steam-close-button`). SteamOS's `steamvr.service` deletes `~/.cache/SteamVR` (the dashboard's own browser storage) on every SteamVR start. | until removed: kept when a patch is disabled (the choices come back when you enable it again) | `steam-frame-nix-cleanup --all`, `install.sh uninstall` | | mtime of `~/.local/share/icons/hicolor` | [icon fallbacks](launcher-menu.md#icon-fallbacks): a running Steam rescans icons | only the directory's timestamp | nothing to remove | ## Only while running - The UI patches (Steam, SteamVR dashboard, VR keyboard) live in the pages' memory; stopping `steam-ui-patches` / `steam-keyboard-patch` reverts them. - clipboard-sync runs from KDE autostart (a Home Manager link). - Firefox: the desktop profile's `user.js` link exists only while its Firefox runs (see [Firefox](firefox.md#how-it-works)). - Jellyfin: the hardware decoding permissions are `flatpak run` options of the desktop entry, not a Flatpak override. ## Cleanup **`steam-frame-nix-cleanup`** (`install.sh cleanup`, `steamFrame.cleanup.package`) knows everything any version of steam-frame-nix wrote outside the store, removes only what is provably its own (everything else is reported as "left alone") and can be run again safely; `--dry-run` shows what it would do. - On every switch, `cleanup --orphans` removes what the configuration no longer uses (never the saved patch state). - `steam-frame-nix-cleanup --all` removes everything, also the saved patch state. SteamVR's key can't be changed while SteamVR runs: it is then left to the runtime drop-in (restored when SteamVR stops). - Without Nix or after a rollback it runs from the script (bash, coreutils, findutils, jq, all in SteamOS' `/usr/bin`): `curl -fsSL https://steam-frame-nix.lhns.de | bash -s -- cleanup --all`. - It also removes what older versions left: the icon fallback links and their list (`~/.local/state/steam-frame-nix/icon-fallbacks`), the debugger marker `steamvr-debugger`, Firefox `user.js` copies and links and their `prefs.js` values, the Jellyfin hwdec entries of `~/.local/share/flatpak/overrides/org.jellyfin.JellyfinDesktop` (an empty override file too) and the old shim copy in `~/.var/app/org.jellyfin.JellyfinDesktop`. ## Set up by install.sh `install.sh install` (the bootstrap, not the modules) changes more, and `install.sh uninstall` undoes it: - Nix via [nix-installer](https://github.com/NixOS/nix-installer) (`steam-deck` planner, flakes on): `/nix` (bind mount of `/home/nix`, survives SteamOS updates), files in `/etc` (systemd units, profile scripts, `nix.conf`) and its receipt `/nix/receipt.json`; the read-only root is unlocked only while it installs or uninstalls. Skipped if Nix already works; - `experimental-features = nix-command flakes` in `~/.config/nix/nix.conf` if Nix was already there without flakes; - `~/nix-config` (your configuration, a git repository, from the template with your user name) and the link `~/.config/home-manager` to it, unless `~/.config/home-manager` exists or `--flake ` is given; uninstall removes the link, never the configuration; - dotfiles Home Manager found in its way, renamed to `*.hm-backup-