Remove PageUp/PageDown pane rotation keybinds that don't align with wezterm workflow. The static pane layout approach (fixed splits + zoom toggle) doesn't benefit from rotation like dynamic window managers do. Also update CLAUDE.md to clarify that Home Manager is a NixOS module, so just build/switch commands handle both system and user configurations together.
3 KiB
3 KiB
CLAUDE.md
This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository.
Repository Overview
This is a NixOS and Home Manager configuration using flakes architecture, managing two hosts (fuchsia and viridian) with declarative system and user configurations.
Common Development Commands
System Management
just build <hostname>- Build system and home-manager configuration without switchingjust switch <hostname>- Build and switch to new system and home-manager configuration (requires sudo)just deploy <hostname>- Deploy configuration to remote host
Note: Home Manager is configured as a NixOS module, so just build/switch commands handle both system and user configurations together.
Nix Operations
nix build- Build packages defined in flakenix fmt- Format Nix files using alejandra formatternix flake update- Update all flake inputs
Development Environment
nix develop- Enter development shell withjustavailablenix-shell- Legacy shell environment
Architecture
Flake Structure
- Main flake inputs: nixpkgs (stable/unstable), home-manager, agenix/agenix-rekey, external configs
- Outputs: NixOS configurations, Home Manager configurations, packages, overlays, modules
- Host configurations:
fuchsia(desktop) andviridian(server)
Directory Organization
nixos/- System-level configurationscommon/global/- Shared system configuration (nix settings, secrets, SSH)common/users/- User account definitionscommon/optional/- Optional system features (yubikey, persistence)<hostname>/- Host-specific configurations and services
home-manager/- User environment configurationssajenim/features/- Modular user features (cli, desktop, editors, games)sajenim/global/- Base user configuration
modules/- Custom NixOS and Home Manager modulespkgs/- Custom package definitionsoverlays/- Package modifications and patches
Key Features
- Ephemeral BTRFS: Root filesystem is recreated on boot with opt-in persistence
- Secret Management: agenix for encrypted secrets, rekeyed with YubiKey
- Modular Design: Features organized as importable modules
- Custom Packages: External configurations (nixvim, xmonad-config) as flake inputs
Host Profiles
- fuchsia: Desktop workstation with X11, gaming, development tools
- viridian: Server with multimedia stack (*arr services), web services, containers
Service Management
- Services defined in
nixos/<hostname>/services/andnixos/<hostname>/multimedia/ - Docker containers managed through
virtualisation.oci-containers - Traefik reverse proxy with automatic HTTPS
- Borgbackup for persistent data
Configuration Patterns
- All
.nixfiles usedefault.nixfor module entry points - Configurations use explicit imports for modular composition
- Host-specific and shared configurations clearly separated
- External dependencies managed through flake inputs