# steam-frame-nix [Home Manager](https://github.com/nix-community/home-manager) modules for the Valve Steam Frame: SteamOS on `aarch64-linux`, standalone home-manager on a non-NixOS system. They work around quirks of the Frame's two graphical sessions (portal config, keyboard layout, clipboard, Firefox) and extend Steam's and SteamVR's UIs at runtime (VR keyboard, "+" menu, dashboard window limits, a close button for Steam's VR window, window curvature, window controls) declaratively, so every change can be reverted by activating an older home-manager generation. All options live under `steamFrame.*`. The portal fix and clipboard sync are on by default; everything else is opt-in. - [Install](#install) · [Two sessions](#two-sessions) · [Usage](#usage) · [Options](#options) - [UI patches](#ui-patches-uipatchespatches): [finders and signatures](#finders-and-signatures), [after a Steam update](#after-a-steam-update) - [Fixes in detail](#fixes-in-detail): [session](#session-settings-and-background-services-sessionnix), [portal](#portal-portalfix), [keyboard layout](#keyboard-layout-keyboardlayout-keyboardvariant), [Steam keyboard](#steam-keyboard-patch-steamkeyboardpatchenable), [launcher menu](#launcher-menu-launchermenu), [dashboard windows](#dashboard-windows-dashboard), [Steam close button](#steam-close-button-dashboardsteamclosebuttonenable), [window curvature](#window-curvature-dashboardwindowcurvature), [window control bar](#window-control-bar-dashboardframecontrols), [SteamVR debugger](#steamvr-debugger-steamvrdebuggerenable), [hidden apps](#hidden-apps-hiddenapps), [clipboard sync](#clipboard-sync-clipboardsyncenable), [Firefox](#firefox-firefox) - [Rollback](#rollback) ## Install On the Frame (or a Steam Deck), open a terminal (Konsole in the desktop mode / nested desktop) and run: ```sh curl -fsSL https://steam-frame-nix.lhns.de | bash -s -- install ``` `https://steam-frame-nix.lhns.de` redirects to [`install.sh`](https://raw.githubusercontent.com/lhns/steam-frame-nix/main/install.sh) on the `main` branch; use that URL directly if the short link is unreachable. `sudo` needs a password: if you never set one, run `passwd` first. What it does: 1. Installs Nix with the [NixOS nix-installer](https://github.com/NixOS/nix-installer) (`steam-deck` planner: the store lives in `/home/nix`, which survives SteamOS updates; flakes enabled). The read-only root filesystem is unlocked only for the installation. Skipped if Nix already works. 2. Uses the Home Manager configuration in `~/.config/home-manager`, or `--flake `. If there is none, it creates one in `~/nix-config` from this repo's template (a git repo, linked to `~/.config/home-manager`) with your user name filled in. 3. Activates it (`home-manager switch`); existing dotfiles that conflict are renamed to `*.hm-backup-