Stashing a window now stops an active screencast of it, rather than leaving the consumer on a frozen last frame (a stashed window is never rendered). Covers both stash paths - Mod+M and Mod+Shift+M's hide branch - by diffing which windows left the layout across the action, so scratchpad_show's branch logic isn't duplicated in the caller. Dynamic-target casts are retargeted to Nothing rather than ended; that carve-out is documented inline. Also widen the acceptance harness spawn wait to 30s: each test launches its own nested niri, and a cold alacritty start occasionally exceeded the old 10s. Deliberately not a retry, which could double-spawn and corrupt window counts. 117 unit tests and 8/8 live acceptance pass. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Dotfiles (Niri + Wayland)
A personal Wayland desktop configuration centered around the Niri tiling compositor.
| Area | Tool |
|---|---|
| Compositor | niri |
| Bar | waybar |
| Terminal | alacritty |
| Shell | fish + starship |
| Launcher | wofi |
| Notifications | mako |
| Lockscreen | hyprlock |
| Login/greeter | greetd + regreet |
| Wallpaper | awww |
| Screenshots | grim + slurp + satty |
| Clipboard | cliphist |
| Theme | Tomorrow Night (GTK: Materia-dark, icons: Papirus) |
Everything is symlinked into ~/.config via install.sh, with packages listed in packages.txt.
Setup
git clone git@github.com:YOURNAME/dotfiles.git
cd dotfiles
./install.sh
One-time hibernation enablement
Hibernation requires a persistent swap file, kernel resume parameters, and a regenerated UKI. Run once, then reboot:
sudo bash scripts/enable-hibernation.sh
After reboot, systemctl hibernate will work, and lid close / 30-min idle will suspend-then-hibernate per the tracked logind config.
One-time NetworkManager activation
After install.sh deploys the NetworkManager config, swap from systemd-networkd to NetworkManager (one-time, persistent across reboots):
sudo systemctl disable --now systemd-networkd
sudo systemctl enable --now NetworkManager
Wifi will drop for a few seconds and reconnect via iwd's stored profiles. If reconnection fails, re-enter the wifi password via nm-applet (tray icon) or networkmanager_dmenu (waybar network widget click).
One-time fingerprint setup
After install.sh installs fprintd, enroll a finger and wire it into the sudo + lockscreen auth stacks:
fprintd-enroll # interactive; touch the reader as prompted
sudo bash scripts/enable-fingerprint.sh # idempotent — safe to re-run
Test with sudo true (should prompt for fingerprint) or Mod+Shift+E to lock + touch the reader.
To enroll additional fingers: fprintd-enroll -f left-thumb (or right-thumb, left-index, etc.).