Running at 60Hz caused significant input lag. Enable full 165Hz
refresh rate on the OMEN 27i and adaptive sync for VRR.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
The Nix build sandbox can't access ~/.config/sway/wallpaper.jpg,
so the config check fails. The config is valid at runtime.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- Enable bluetooth with blueman for speaker pairing
- Pulseaudio: headphone icon, mute indicator
- Network: show bandwidth up/down instead of interface name
- Bluetooth waybar module with catppuccin styling
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- Wallpaper from ~/.config/sway/wallpaper.jpg
- Waybar modules styled as rounded pills with gaps
- Semi-transparent waybar background
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
python-build compiles from source and needs headers/library paths.
nix-ld only handles runtime linking for prebuilt binaries. Set
CFLAGS, LDFLAGS, and PKG_CONFIG_PATH via sessionVariables so
configure scripts find zlib, openssl, readline, etc.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Dynamically linked binaries (dotnet, python) need libraries in
NIX_LD_LIBRARY_PATH, not just on PATH via systemPackages.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
gnupg fixes GPG verification warnings. nix-ld provides a dynamic
linker shim so generic Linux binaries (dotnet, rustup, etc.)
downloaded by mise can run on NixOS.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Configured via home-manager with workspaces, window title,
audio, network, clock, and tray modules.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Raw _1password-cli and _1password-gui packages don't set up the
onepassword-cli group, setgid bit, or polkit policy needed for
CLI-to-desktop-app communication. The NixOS modules handle this.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Crosshair VI Hero has no TPM module. systemd waits 90s for
/dev/tpm0 and /dev/tpmrm0 before timing out on every boot.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Drives mounted by disko default to root ownership. Use tmpfiles
rules to set eblume:users ownership at boot.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
The nixos/nix container doesn't have flakes enabled by default.
Pass --extra-experimental-features flag. Also commit the updated
flake.lock with home-manager input resolved via Dagger.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- New `flake-lock` Dagger function: runs `nix flake lock` in a
nixos/nix container, returns the updated flake.lock file.
- provision-ringtail now: updates flake.lock via Dagger before
deploy, verifies current commit is pushed to forge, and passes
the exact commit SHA to the ansible playbook.
- Playbook accepts `ringtail_commit` var to deploy a specific ref.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
The NixOS programs.sway module doesn't have extraConfig. Use
home-manager's wayland.windowManager.sway instead to set the
terminal to wezterm (which gives us $mod+Return automatically).
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Queried ringtail directly for CPU, RAM, GPU, storage, monitor,
and peripheral details via dmidecode, edid-decode, and lsusb.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Sway keybinding for wezterm, fish as default shell, remove
initialPassword, add 1Password/chezmoi/dev tool packages.
Add ringtail reference card and update host inventory.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>