- Create
flake.nixwith pinned nixpkgs, Home Manager input, and system/home configuration outputs - Create
flake.lock(will be generated on first build) - Create
hosts/default.nixwith base system configuration importing modules - Create
hosts/test-vm.nixfor VM testing configuration - Create
README.mdwith usage instructions, testing workflow, and architecture overview
-
Create
modules/sway.nixwith Sway window manager configuration -
Create
modules/programs.nixfor common system programs -
Create
modules/services.nixfor system services -
Create
modules/system-tuning.nixwith:- Kernel parameters (AMD Ryzen 7 5800X, RX 6700 XT, threaded IRQ)
- Sysctl configuration (VM, network, filesystem, memory)
- I/O scheduler configuration (NVMe, SATA SSD, HDD)
- Module blacklisting
- Journald configuration
- Mount options (noatime, discard for SSDs)
- Boot configuration (Limine integration)
- CPU governor settings
- Hardware-specific tuning (AMD GPU, USB power management)
-
Create
modules/development.nixwith:- Python tooling (uv, poetry, ruff, mypy, pytest)
- Node.js/TypeScript (nodejs, npm, pnpm, yarn, TypeScript)
- Version managers (mise)
- Development utilities (git, gh, direnv, just)
- LSP servers (Python, TypeScript, JavaScript)
- Build tools (make, cmake, gcc, clang)
- Database clients (PostgreSQL, MySQL, SQLite)
-
Create
modules/docker.nixwith:- Docker daemon service configuration
- Docker Compose support
- User group configuration for Docker access
-
Create
modules/git.nixwith:- System-wide git settings
- SSH configuration
- SSH agent integration
-
Create
modules/1password.nixwith:- 1Password CLI installation
- 1Password SSH agent setup
- SSH_AUTH_SOCK environment variable configuration
- Systemd user service for 1Password agent
-
Create
modules/pam.nixwith:- PAM modules for system authentication
- SSH PAM integration
- 1Password PAM module (if applicable)
-
Create
modules/theming.nixwith:- Tokyo Night color palette definitions
- GTK theming (GTK3/GTK4, icons, cursor)
- QT theming (qt5ct/qt6ct configuration)
- Application theming (VS Code, terminals, Fuzzel)
- LS_COLORS configuration (vivid tokyonight-night)
- Console colors (Tokyo Night)
-
Create
home-manager/default.nixwith:- Base shell configuration (zsh with antidote)
- Ghostty terminal configuration
- Editor configuration (VSCode/Cursor)
- Font configuration (Inter Nerd Font, JetBrains Mono Nerd Font)
-
Create
home-manager/sway.nixwith:- Full Sway configuration file (from dotfiles)
- Keybindings (Mod1/Alt key, workspaces, layouts)
- Waybar integration
- Screenshot tools configuration
- Clipboard management
- Autotiling-rs setup
- Swayidle/swaylock configuration
- Display configuration (DP-3, 4K@144Hz, scaling)
-
Create
home-manager/waybar.nixwith:- Waybar configuration (topbar/bottombar)
- Custom scripts (weather, mail, poweroff, etc.)
- Tokyo Night styling
-
Create
home-manager/programs.nixwith:- Fuzzel launcher configuration
- SwayNC notification center
- Thunar file manager
- ReGreet greeter
- Additional tools (playerctl, wl-color-picker, emote, nm-applet)
-
Create
home-manager/shell.nixwith:- Enhanced zsh configuration
- Custom functions directory setup
- Keybindings (Ctrl+arrows, Ctrl+UP/DOWN, Ctrl+R for hstr)
- Shell aliases (git, docker, development utilities)
- Shell functions (project finders, environment helpers)
- hstr integration for history search
- History configuration (large size, XDG-aware location)
- XDG compliance for shell configs
-
Create
home-manager/git.nixwith:- Git user configuration (name, email)
- Git aliases
- GPG signing configuration (if used)
- SSH signing keys
- XDG-aware git config location
-
Create
home-manager/xdg.nixwith:- XDG Base Directory environment variables
- Application-specific XDG paths:
- Rust (CARGO_HOME, RUSTUP_HOME)
- Go (GOMODCACHE)
- Python (PYTHON_EGG_CACHE, WORKON_HOME, MYPY_CACHE_DIR)
- Node.js (PNPM_HOME)
- Java (_JAVA_OPTIONS, ANDROID_SDK_HOME)
- Docker (DOCKER_CONFIG)
- Wine (WINEPREFIX)
- Other tools
- Create
users/kaizen.nixwith:- User settings and home directory setup
- SSH agent configuration (1Password integration)
- Environment variables
- Groups (docker, audio, etc.)
-
Create
scripts/test-container.shfor:- NixOS container creation
- Configuration mounting
- Network isolation
- Optional Wayland forwarding
-
Create
scripts/test-vm.shfor:- QEMU VM creation using flake
- Configurable resources (CPU, memory)
- Graphical display forwarding
- Optional USB passthrough
-
Create
scripts/build.shfor:- Flake syntax validation
- Configuration building
- Optional test running
- Error checking
- Set up development shell (devShell in flake)
- Configure audio module (PipeWire, low-latency settings)
- Set up fonts module (Nerd Fonts installation)
- Create hardware-specific modules if needed
- Test all configurations in VM/container
- Document any NixOS-specific adaptations from Arch setup
- Create helper scripts for common operations
- Set up XDG compliance checker script
- All configurations should follow XDG Base Directory specification
- Tokyo Night theme should be applied consistently across all applications
- Shell configuration should emulate current zsh setup in Nix-style
- Development tools should use Nix-native solutions where possible (mise may work, but consider devShells)
- Testing should be done in containers/VMs before full migration