Files
Pierre Kisters 92e9d17e09 Launchers: a neutral example app in docs and tests
The Nix-package launcher example in docs and option examples is now
Signal (pkgs.signal-desktop, desktop ID "signal", sgnl:// and
signalcaptcha:// handlers). The check uses a made-up org.example.App
from a fake package (fake store path), covering the same Exec, action,
MimeType, source and missing-entry cases.

Screenshots: placeholder Steam account IDs in the docs, option example
and check.
2026-10-01 18:06:50 +02:00

2.1 KiB

SteamVR screenshots

screenshots.*, module screenshots. Options: README, Options.

Problem

Steam keeps VR screenshots deep in its data directory, under the Steam account ID, where Dolphin, Gwenview and the file pickers don't look.

What you get

~/Pictures/SteamVR Screenshots (screenshots.name), a link to Steam's folder of SteamVR screenshots (app 250820): ~/.local/share/Steam/userdata/<account ID>/760/remote/250820/screenshots. Nothing is copied; the link goes away when you turn the option off.

Taking a screenshot: hold the Steam button and click a trigger (SteamVR's TakeScreenshot chord). Steam writes the capture as a PNG to /run/user/1000/Screenshot_*.png (tmpfs, temporary), then imports it as a 1920x1080 JPG into the folder above (small copies in thumbnails/, listed in …/760/screenshots.vdf). The JPG is the only copy that stays.

Configuration

steamFrame.screenshots.enable = true;
# steamFrame.screenshots.steamUserId = "12345678";   # optional

The account ID is found at runtime: the account last logged in to Steam (MostRecent, else the latest timestamp in ~/.local/share/Steam/config/loginusers.vdf), else the only folder in ~/.local/share/Steam/userdata; it follows when you switch accounts. steamUserId (the folder name, ls ~/.local/share/Steam/userdata) fixes it instead: a plain Home Manager link, no service.

Caveats

  • Steam creates the folder with the first screenshot: until then the link points nowhere.
  • Only SteamVR's folder is linked; screenshots Steam files under another app are in …/760/remote/<app ID>/screenshots.
  • Without steamUserId, when no account is found there is no link (the service warns in journalctl --user -u steam-frame-nix-screenshots).

How it works

Without steamUserId, ~/Pictures/<name> is a Home Manager link to /run/user/1000/steam-frame-nix/screenshots, a link that the oneshot user service steam-frame-nix-screenshots points to the account's folder: on switch, at login and when loginusers.vdf or userdata changes (path unit). Its lifetime and cleanup: Changes outside Nix.