CI / flake (push) Skipped
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>