mirror of
https://github.com/lhns/steam-frame-nix.git
synced 2026-10-06 04:04:16 +02:00
SteamOS's steamvr.service runs `rm -rf ~/.cache/SteamVR` on every SteamVR start, which deletes vrwebhelper's browser profile and with it the localStorage frame-controls kept its placements in, so they were lost on every SteamVR restart and reboot. steam-ui-patches: per-patch persistent state (`state = true`). The injector keeps ~/.local/state/steam-frame-nix/ui-patches/<name>.json, seeds window.__sfuiStore in a fresh page before the patch runs and writes the file (atomically, on change, name-checked, max 64 KiB) when the page calls the CDP binding __sfuiStoreSave. frame-controls v5: placements saved there (v4 localStorage copy migrated once, then removed). steam-close-button v8: "Steam hidden" saved there; a restored hidden state hides Steam once if SteamVR already shows it when the patch attaches (or first shows it before the patch sees Steam's frame). README: "Changes outside Nix" lists the directory; install.sh uninstall removes it.
32 lines
1.3 KiB
Nix
32 lines
1.3 KiB
Nix
# Close (X) button on the dashboard's Steam window. SteamVR dashboard patch
|
|
# (steam-close-button/patch.js; "systemui" on 127.0.0.1:8087), registered only
|
|
# when enabled; enables steamvr-debugger.nix (one SteamVR restart the first time).
|
|
{ config, lib, pkgs, ... }:
|
|
let
|
|
cfg = config.steamFrame.dashboard.steamCloseButton;
|
|
inherit (import ./lib { inherit pkgs; }) mkPatch;
|
|
in {
|
|
imports = [ ./steam-ui-patches.nix ./steamvr-debugger.nix ];
|
|
|
|
options.steamFrame.dashboard.steamCloseButton.enable = lib.mkEnableOption ''
|
|
a Close (X) button on the dashboard's Steam window. It hides Steam
|
|
(previous window or just the bar) until shown explicitly, e.g. via the
|
|
Steam tab, also across SteamVR restarts and reboots (in
|
|
~/.local/state/steam-frame-nix/ui-patches/steam-close-button.json).
|
|
SteamVR dashboard patch; off removes it (next switch)'';
|
|
|
|
config = lib.mkIf cfg.enable {
|
|
steamFrame.uiPatches.patches = [ {
|
|
name = "steam-close-button";
|
|
endpoint = "http://127.0.0.1:8087";
|
|
target.title = "systemui";
|
|
patch = mkPatch {
|
|
name = "steam-close-button";
|
|
src = ./steam-close-button/patch.js;
|
|
};
|
|
unpatch = ./steam-close-button/unpatch.js;
|
|
state = true; # "Steam hidden", kept across restarts
|
|
} ];
|
|
};
|
|
}
|