diff --git a/README.md b/README.md index e77f99d..dff7a13 100644 --- a/README.md +++ b/README.md @@ -18,87 +18,42 @@ for everything). All options live under `steamFrame.*`. The portal fix and clipboard sync are on by default; everything else is opt-in. -- [Features](#features) · [Install](#install) · [Two sessions](#two-sessions) · - [Usage](#usage) · [Options](#options) -- [Fixes in detail](#fixes-in-detail): - [session](#session-settings-and-background-services-sessionnix), - [portal](#portal-sessionportalfix), - [keyboard layout](#keyboard-layout-keyboardlayout-keyboardvariant), - [VR keyboard extra keys](#steam-keyboard-patch-keyboardvrextrakeysenable), - [swipe and suggestions](#vr-keyboard-swipe-and-suggestions-keyboardvr), - [launcher menu](#launcher-menu-launchermenu), - [hidden apps](#hidden-apps-launchermenuhiddenapps), - [icon fallbacks](#icon-fallbacks-launchermenuiconfallbacks), - [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), - [clipboard sync](#clipboard-sync-clipboardsyncenable), - [Firefox](#firefox-firefox), - [Jellyfin hardware decoding](#jellyfin-hardware-decoding-jellyfinhardwaredecoding) -- [UI patches](#ui-patches-uipatchespatches): - [DevTools on the LAN](#devtools-on-the-lan), - [after a Steam update](#after-a-steam-update) -- [Changes outside Nix](#changes-outside-nix-exceptions) · - [Rollback](#rollback) · [Uninstall](#uninstall) - -Technical documentation (how the patches work, writing your own, fixing them -after a Steam update): [`docs/`](docs). - ## Features -Session and desktop: +One page per feature in [`docs/`](docs): problem, what you get, +configuration, limitations and how it works. -- [Portal fix](#portal-sessionportalfix) (`session.portalFix`, on): apps in - the Steam session can open links. -- [Clipboard sync](#clipboard-sync-clipboardsyncenable) (`clipboardSync`, - on): one clipboard for the Steam session and the nested desktop. -- [Session settings](#session-settings-and-background-services-sessionnix) - (`session.*`): outer bus and user services, for launchers and the other - modules. +**Session** ([docs/session.md](docs/session.md)): -Keyboard: +- [Session settings](docs/session.md#session-settings-and-services) (`session.*`): outer bus and user services, for launchers and the other modules. +- [Portal fix](docs/session.md#portal-fix) (`session.portalFix`, on): apps in the Steam session can open links. +- [Keyboard layout](docs/session.md#keyboard-layout) (`keyboard.layout`, `keyboard.variant`): XKB layout for the Steam session. +- [Clipboard sync](docs/session.md#clipboard-sync) (`clipboardSync`, on): one clipboard for the Steam session and the nested desktop. -- [Keyboard layout](#keyboard-layout-keyboardlayout-keyboardvariant) - (`keyboard.layout`, `keyboard.variant`): XKB layout for the Steam session. -- [Extra keys](#steam-keyboard-patch-keyboardvrextrakeysenable) - (`keyboard.vr.extraKeys`): Esc/Ctrl/Alt, arrows, Delete, real chords and - AltGr/non-ASCII characters on the VR keyboard. -- [Swipe and suggestions](#vr-keyboard-swipe-and-suggestions-keyboardvr) - (`keyboard.vr`): swipe typing, corrections, completions, Backspace drag. +**VR keyboard** ([docs/keyboard.md](docs/keyboard.md)): -VR "+" menu: +- [Extra keys](docs/keyboard.md#extra-keys) (`keyboard.vr.extraKeys`): Esc/Ctrl/Alt, arrows, Delete, real chords and AltGr/non-ASCII characters. +- [Swipe and suggestions](docs/keyboard.md#swipe-and-suggestions) (`keyboard.vr`): swipe typing, corrections, completions, Backspace drag. -- [Launcher menu](#launcher-menu-launchermenu) (`launcherMenu.*`): sorted, - Desktop pinned, closes on launch, no double launches, grid of tiles, all - programs without Developer Mode. -- [Hidden apps](#hidden-apps-launchermenuhiddenapps) - (`launcherMenu.hiddenApps`) and - [icon fallbacks](#icon-fallbacks-launchermenuiconfallbacks) - (`launcherMenu.iconFallbacks`, on) for Konsole and KDE System Settings. +**VR "+" menu** ([docs/launcher-menu.md](docs/launcher-menu.md)): -SteamVR dashboard (turns on the -[SteamVR debugger](#steamvr-debugger-steamvrdebuggerenable) automatically): +- [Launcher menu](docs/launcher-menu.md) (`launcherMenu.*`): sorted, Desktop pinned, closes on launch, no double launches, grid of tiles, all programs without Developer Mode. +- [Hidden apps](docs/launcher-menu.md#hidden-apps) (`launcherMenu.hiddenApps`) and [icon fallbacks](docs/launcher-menu.md#icon-fallbacks) (`launcherMenu.iconFallbacks`, on) for Konsole and KDE System Settings. -- [Dashboard windows](#dashboard-windows-dashboardwindows) - (`dashboard.windows`): larger max scale and push-back distance. -- [Steam close button](#steam-close-button-dashboardsteamclosebuttonenable) - (`dashboard.steamCloseButton`): an X that hides the Steam window. -- [Window curvature](#window-curvature-dashboardwindowcurvature) - (`dashboard.windowCurvature`): adjustable curvature per window. -- [Window control bar](#window-control-bar-dashboardframecontrols) - (`dashboard.frameControls`): move controls between bar and three-dot menu. +**SteamVR dashboard** ([dashboard patches](docs/ui-patches.md#steamvr-dashboard-patches)): -Apps: +- [Dashboard windows](docs/dashboard-windows.md) (`dashboard.windows`): larger max scale and push-back distance. +- [Steam close button](docs/steam-close-button.md) (`dashboard.steamCloseButton`): an X that hides the Steam window. +- [Window curvature](docs/window-curvature.md) (`dashboard.windowCurvature`): adjustable curvature per window. +- [Window control bar](docs/window-control-bar.md) (`dashboard.frameControls`): move controls between bar and three-dot menu. +- [SteamVR debugger](docs/steamvr-debugger.md) (`steamvrDebugger`, automatic): SteamVR's DevTools port for these, set only while SteamVR runs. -- [Firefox](#firefox-firefox) (`firefox`): launcher for the Flatpak with a VR - fullscreen fix, optional AV1 off, a separate desktop profile. -- [Jellyfin](#jellyfin-hardware-decoding-jellyfinhardwaredecoding) - (`jellyfin.hardwareDecoding`): hardware video decoding in the Jellyfin - Desktop Flatpak. +**Apps:** -Your own patches of Steam's UI: [UI patches](#ui-patches-uipatchespatches). +- [Firefox](docs/firefox.md) (`firefox`): launcher for the Flatpak with a VR fullscreen fix, optional AV1 off, a separate desktop profile. +- [Jellyfin](docs/jellyfin.md) (`jellyfin.hardwareDecoding`): hardware video decoding in the Jellyfin Desktop Flatpak. + +**Your own patches** of Steam's UI, and fixing patches after a Steam update: [UI patches](docs/ui-patches.md). ## Install @@ -113,22 +68,13 @@ 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](template) with your user - name; -3. runs `home-manager switch`; conflicting dotfiles are renamed to - `*.hm-backup-