mirror of
https://github.com/lhns/steam-frame-nix.git
synced 2026-10-06 03:00:13 +02:00
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.
55 lines
2.0 KiB
Markdown
55 lines
2.0 KiB
Markdown
# Session, portal and clipboard
|
|
|
|
Plumbing between the Frame's [two sessions](two-sessions.md). Options:
|
|
[Session](options.md#session), [Clipboard sync](options.md#clipboard-sync).
|
|
|
|
## Session settings and services
|
|
|
|
Module `session.nix`, used by the other modules; normally nothing to set.
|
|
|
|
- `session.runtimeDir` / `session.bus` point at the Steam session's runtime
|
|
dir and bus (services, KDE wallet), which the nested desktop can't see.
|
|
`session.busEnv` is a launcher prefix to reach them:
|
|
|
|
```nix
|
|
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](https://github.com/dnut/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.
|