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

55 lines
2.1 KiB
Markdown

# SteamVR screenshots
`screenshots.*`, module `screenshots`. Options:
[README, Options](../README.md#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
```nix
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](../README.md#changes-outside-nix-exceptions).