One page per feature group (sessions, keyboard, launcher menu, dashboard, SteamVR debugger, Firefox, Jellyfin, UI patches, changes outside Nix) and the full options table in docs/options.md.
2.0 KiB
Session, portal and clipboard
Plumbing between the Frame's two sessions. Options: Session, Clipboard sync.
Session settings and services
Module session.nix, used by the other modules; normally nothing to set.
-
session.runtimeDir/session.buspoint at the Steam session's runtime dir and bus (services, KDE wallet), which the nested desktop can't see.session.busEnvis a launcher prefix to reach them:xdg.dataFile."applications/org.example.App.desktop".text = '' [Desktop Entry] Type=Application Name=Example Exec=${config.steamFrame.session.busEnv} flatpak run org.example.App %U ''; -
Switching from the nested desktop, Home Manager can't reach the service manager ("User systemd daemon not running"). So after every switch this module reloads the Steam session's user manager and applies
session.services.start/stop/restart, which other modules fill.
Portal
session.portalFix.enable, on by default.
Problem: the Frame image (SteamOS 0.3.0, build 20260922) points the Steam
session's xdg-desktop-portal at /usr/share/xdg-desktop-portal/gamescope-portals,
which lacks gamescope-portals.conf: no backend, no OpenURI, so no app in
the Steam session can open links.
Fix: a portal dir in ~/.local/share linking Valve's .portal files plus
a config (default=holo;gamescope), and a drop-in on
xdg-desktop-portal.service. The desktop's portal is unaffected.
Remove when SteamOS ships gamescope-portals.conf.
Clipboard sync
clipboardSync.enable, on by default.
Problem: the Steam session's X displays and the nested desktop have separate clipboards.
Fix: clipboard-sync, built from
source (its flake is x86-only; clipboardSync.package to replace it),
started via KDE autostart (the desktop can't reach the user manager, and
:2 must exist first). Each switch restarts it if outdated, so switch from a
desktop terminal.