Three unrelated desktop-side fixes, all in home/sway.nix.
Sway cannot key an output rule on resolution, so scale 2 on 4K displays
is applied by a user service that runs once at session start and again on
every output event, which is what makes it survive a display being
switched off and on. The scale guard in the jq filter stops the
subscription feeding itself. kanshi still owns mode and position; no
profile here sets a scale, so the two do not fight.
natural_scroll on type:pointer gives mice the same scroll direction as
the touchpads already had.
PCSX2 and Dolphin default to borderless-windowed rather than compositor
fullscreen, so the existing inhibit_idle fullscreen rules never matched
and swaylock engaged mid-game. Inhibit on focus for the emulators
instead. The Steam session is unaffected either way: swayidle is wanted
by graphical-session.target and conditional on WAYLAND_DISPLAY, and the
gamescope session provides neither.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
The docs-site build syncs this repo's README.md and docs/ into the site
tree; nothing else is copied. All prose apart from the README therefore lived
outside the sync and never appeared on https://docs.lyrapup.pet/nixfiles/, and
the one page that did publish carried 18 link targets that resolved to nothing.
Moves:
home/README.md -> docs/shell.md
home/KEYBINDINGS.md -> docs/keybindings.md
hosts/<Name>/README.md -> docs/hosts/<name>.md
docs/.pages and docs/hosts/.pages give the awesome-pages plugin an explicit
order; new pages are picked up by the trailing '...' without an edit.
Links are rewritten so a single URL is correct in both Gitea and the published
site: absolute Gitea source URLs for .nix files and directories, relative links
between pages under docs/, and absolute docs.lyrapup.pet URLs from the root
README, which the build republishes at a different depth from the rest of the
tree. In-code comments that pointed at a moved README are updated to the new
path.
The README gains a Documentation section covering the sync contract and the
linking rules, and CLAUDE.md carries the short version so future edits do not
reintroduce unsynced pages or dead links.
Verified by reproducing the docs-site assembly locally against its pinned
toolchain (mkdocs 1.6.1, mkdocs-material 9.7.7, awesome-pages 2.10.1): pages
render at the URLs used above and in the declared order.