Adapted from emmaisadev/dotfiles (sway/config.d) into the Nix config: - Screenshots to swappy: Print = drag a region, Shift+Print = focused window (a writeShellScript reusing the grimshot.sh tree/jq logic). Replaces the old plain full-screen grim->file. - Workspace cycle Mod+z / Mod+x (prev/next). - Media keys (playerctl) and mic mute (wpctl source). - Re-home `focus mode_toggle` onto Mod+Alt+space (Mod+Space is the launcher now). - Clipboard history: services.clipman stores copies; Mod+c picks one through a Catppuccin-themed fuzzel (programs.fuzzel). - Binding modes: a layout submenu (Mod+y -> s/w/e, which also restores split-toggle that Mod+e gave up to nemo) and a power menu (Mod+Shift+x -> lock/exit/sleep/reboot/shutdown). Mod+l still locks immediately. - Touchpad tap + natural scroll (laptops; inert on desktop). - Solid Catppuccin base as the wallpaper (output * bg, no image). - foot: term=xterm-256color and scrollback 100000 (colours unchanged). - swaywm.nix: add slurp/swappy/jq/playerctl to the session packages. Skipped from the dotfiles: named workspaces + app auto-assign, the foot --server/footclient setup, and pactl/MX-Master/lxqt device-specific bits. All in the shared files, so every Sway host gets it. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
nixfiles
NixOS / nix-darwin / home-manager configuration for all hosts, built from a single flake.
Hosts
Defined in the host table in flake.nix:
| Configuration | System | Machine |
|---|---|---|
lyrathorpe-mbp |
aarch64-linux |
MacBook Pro (Apple Silicon, Asahi) |
lyrathorpe-t400 |
x86_64-linux |
ThinkPad T400 — install notes |
lyrathorpe-macpro31 |
x86_64-linux |
Mac Pro 3,1, desktop — install notes |
emmathorpe-edaas |
x86_64-linux |
Work WSL box (NixOS-WSL) |
lyrathorpe-mac |
aarch64-darwin |
macOS (nix-darwin) |
Shared layers: lyrathorpe/home (home-manager: shell, git, editor),
system/modules/common-nixos.nix (all NixOS hosts), and
system/modules/laptop.nix (the physical laptops).
Applying
# NixOS
sudo nixos-rebuild switch --flake .#<configuration>
# Darwin
darwin-rebuild switch --flake .#lyrathorpe-mac
Login / greeter
Graphical (Sway) hosts log in through a Wayland greeter — greetd running
ReGreet inside the cage kiosk compositor — configured centrally in
lyrathorpe/swaywm.nix, gated on
features.swayDesktop.enable. The greeter is forced to Dvorak to match the
console and Sway session. Hosts with features.swayDesktop.enable = false (the
WSL work box) keep plain TTY login. The target account needs a password
(passwd <user>) before it can log in.
MacBook (Asahi) firmware
The MBP host references system/modules/firmware/ for Apple peripheral
firmware (Wi-Fi/Bluetooth). Those blobs are not redistributable, so the
directory is gitignored and a clean checkout will not build lyrathorpe-mbp
until it is populated out-of-band.
Copy the firmware extracted during the Asahi install (from
/etc/nixos/firmware on the freshly-installed machine, or re-extract per the
Asahi NixOS docs) into
system/modules/firmware/ before rebuilding that host.
CI
.gitea/workflows/ci.yaml gates nixfmt
formatting and evaluates every NixOS and Darwin host configuration on push/PR.