# steam-frame-nix [Home Manager](https://github.com/nix-community/home-manager) modules for the Valve Steam Frame (SteamOS, `aarch64-linux`, standalone home-manager). They work around quirks of the Frame's two graphical sessions (portal, keyboard layout, clipboard, Firefox), enable hardware video decoding in Jellyfin, and extend Steam's and SteamVR's UIs at runtime (VR keyboard, "+" menu, dashboard windows, Steam close button, window curvature, window controls). Everything is declarative and reverts by activating an older 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-sessionportalfix), [keyboard layout](#keyboard-layout-keyboardlayout-keyboardvariant), [Steam keyboard](#steam-keyboard-patch-keyboardvrextrakeysenable), [swipe and suggestions](#vr-keyboard-swipe-and-suggestions-keyboardvr), [launcher menu](#launcher-menu-launchermenu), [dashboard windows](#dashboard-windows-dashboardwindows), [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-launchermenuhiddenapps), [clipboard sync](#clipboard-sync-clipboardsyncenable), [Firefox](#firefox-firefox), [Jellyfin hardware decoding](#jellyfin-hardware-decoding-jellyfinhardwaredecoding) - [Rollback](#rollback) ## Install On the Frame (or a Steam Deck), in a terminal (Konsole in desktop mode or the nested desktop): ```sh curl -fsSL https://steam-frame-nix.lhns.de | bash -s -- install ``` The short link redirects to [`install.sh`](https://raw.githubusercontent.com/lhns/steam-frame-nix/main/install.sh) on `main`. `sudo` needs a password: run `passwd` first if you never set one. The installer: 1. installs Nix with the [NixOS nix-installer](https://github.com/NixOS/nix-installer) (`steam-deck` planner: store in `/home/nix`, survives SteamOS updates; flakes on), unlocking the read-only root only for the install. Skipped if Nix already works; 2. uses `~/.config/home-manager` or `--flake `; if there is none, creates `~/nix-config` (a git repo, linked to `~/.config/home-manager`) from the template with your user name; 3. runs `home-manager switch`; conflicting dotfiles are renamed to `*.hm-backup-