Polish ringtail NixOS config and add documentation #208

Merged
eblume merged 30 commits from feature/ringtail-nixos into main 2026-02-18 17:53:48 -08:00

30 commits

Author SHA1 Message Date
4f460cf897 Set monitor to 165Hz with adaptive sync, add pactl
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>
2026-02-18 17:53:11 -08:00
a2c3ddd9a2 Add pulseaudio package for pactl volume control
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-18 17:46:23 -08:00
4cd6009b52 Add volume keys, fuzzel launcher, bluetooth speakers, update docs
- Volume key bindings for Das Keyboard knob (XF86Audio keys)
- Fuzzel app launcher on $mod+Space (Catppuccin Macchiato themed)
- Bluetooth enabled for Edifier R1280DBs speakers
- LibreWolf browser
- Docs updated: RAM at 3200 MT/s, audio, browser, theme

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-18 17:42:41 -08:00
391dd2dd10 Disable sway config check for runtime wallpaper path
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>
2026-02-18 16:48:48 -08:00
62fb1744d0 Add bluetooth, improve waybar audio/network modules
- 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>
2026-02-18 16:47:51 -08:00
ee21f80d35 Add wallpaper and waybar module pill styling
- 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>
2026-02-18 16:44:28 -08:00
354d745ec6 Add unzip for Mason LSP installs
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-18 16:30:31 -08:00
36fb711ee3 Add librewolf and Catppuccin Macchiato theme for sway/waybar
- librewolf browser
- Sway: gaps (8 inner, 4 outer), 2px borders, catppuccin macchiato
  window colors, VictorMono Nerd Font, solid base color background
- Waybar: catppuccin macchiato styling with accent colors per module

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-18 16:29:56 -08:00
a295298366 Add compile-time flags for mise python-build on NixOS
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>
2026-02-18 15:46:24 -08:00
a870b2c278 Fix changed_when check for nixos-rebuild (stderr not stdout)
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-18 15:33:30 -08:00
6b946349c3 Move runtime libs to nix-ld.libraries for mise binaries
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>
2026-02-18 15:29:00 -08:00
8f7b7ea11a Add ICU and python build deps for mise runtimes
dotnet needs libicu for globalization support. python-build needs
zlib, readline, bzip2, xz, libffi, ncurses, and sqlite.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-18 15:18:11 -08:00
a1e308a43c Launch 1Password and Steam on sway startup
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-18 12:39:53 -08:00
505799448d Update ringtail docs and changelog for PR
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-18 11:39:35 -08:00
24fc5df7ec Add gnupg and nix-ld for mise-installed runtimes
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>
2026-02-18 11:21:39 -08:00
a42e73009f Add build toolchain for mise-managed language runtimes
gcc, gnumake, pkg-config, and openssl needed to compile
Python, Rust, Node, etc. via mise.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-18 11:16:37 -08:00
dbd389cd64 Map Caps Lock to Control in sway
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-18 11:14:48 -08:00
4668bf9978 Add mise to ringtail for managing node/npm
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-18 11:13:00 -08:00
5ad47ef42c Add VictorMono Nerd Font for wezterm
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-18 11:09:13 -08:00
421311ff75 Add waybar with system tray for sway
Configured via home-manager with workspaces, window title,
audio, network, clock, and tray modules.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-18 11:05:03 -08:00
c1ec4851d5 Use NixOS 1Password modules for proper CLI-GUI integration
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>
2026-02-18 11:00:36 -08:00
7548fda5d7 Disable TPM2 to fix 90s boot delay
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>
2026-02-18 10:44:20 -08:00
25feb2fb1e Fix /mnt/* ownership so eblume can use Steam library on /mnt/games
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>
2026-02-18 10:38:07 -08:00
74352603cc Fix ringtail tailscale check: use jq instead of grep
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-18 10:36:08 -08:00
91ed79578f Add ringtail to services-check (SSH + Tailscale)
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-18 10:31:59 -08:00
c56bc1d596 Fix flake-lock: enable experimental features, update lockfile
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>
2026-02-18 10:25:18 -08:00
df5d1bae4d Add Dagger flake-lock function and improve provision-ringtail
- 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>
2026-02-18 10:21:29 -08:00
1f97c5498e Add home-manager for sway keybinding, fix extraConfig error
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>
2026-02-18 10:03:55 -08:00
8daf990aa5 Add detailed hardware specs to ringtail reference card
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>
2026-02-18 09:57:24 -08:00
8c99efee79 Polish ringtail NixOS config and add documentation
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>
2026-02-18 09:51:10 -08:00