Applies immediate rendering to all windows to eliminate the garbage
frame flash that appears before first render.
Also documents JetBrains phantom window suppression limitation (RE2
doesn't support lookaheads, so can't exclude toolbox).
Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
Migrates quick-zeal and spawn-term from compositor-specific APIs
(hyprctl, kdotool, niri msg) to the unified active-window utility.
Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
- active-window: Get focused window info (class, pid) for Niri/Hyprland
- active-path: Get CWD of focused terminal window
These utilities abstract compositor-specific APIs for use in scripts.
Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
Adds harbor (self.packages) to overlay arguments, allowing custom
packages to reference each other via pkgs.harbor.
Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
Adds missing workspace keybinds to match monitor setup:
- Focus workspaces 6-8
- Move windows to workspaces 6-8 silently
Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
Enables clipboard history for both Niri and Hyprland compositors:
- Added wl-clipboard and cliphist packages to Niri
- Configured clipboard watchers for text and images in Niri autostart
- Bound Mod+v to open clipboard history via fuzzel in both compositors
Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
Replace the S3-based Nix binary cache with Attic, a multi-tenant
binary cache server with better deduplication and garbage collection.
Changes:
- Install attic-client system-wide from nixpkgs
- Update substituter URL from s3.toph.so to cache.toph.so/toph
- Replace S3 cache keys with Attic cache signing key
- Add attic client config for endurance host
The Attic cache provides the same functionality as the S3 cache but
with improved performance and multi-tenancy support.
Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
Enables programs.hyprland at the system level, adds xdg-desktop-portal-hyprland
with per-compositor portal routing, and wires up a home-manager config for
endurance mirroring the Niri layout (same keybinds, monitors, window rules).
Niri remains the default SDDM session.
Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
Declares endurance (x86_64-linux), aepplet (x86_64-linux), and
vasa (x86_64-darwin) for rigging integration. No Nomad jobs —
these are desktop/laptop machines only.
Ref: toph/rigging#1
Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
Wire up toph/rigging for multi-repo infrastructure management.
Follows nixpkgs and flake-parts to avoid duplicate inputs.
Ref: toph/rigging#1
Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
Install trash-cli and alias trash to trash-put for safe file deletion.
Also clean up package comments and remove spacedrive-v2.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
The Blue Yeti mic initializes audio endpoints in a broken state on cold boot
because snd-usb-audio loads after device enumeration. This systemd service
toggles USB authorization to force a clean rebind.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Prefixing with underscore prevents auto-import while keeping the file available for explicit use.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>