Personal NixOS and Home Manager configuration using flake-parts for a modular, reproducible system setup.
- NixOS Configuration: Complete system configuration for desktop and server environments
- Home Manager Integration: User-space configuration management
- Hyprland Desktop: Modern Wayland compositor with comprehensive theming
- Catppuccin Theme: Consistent theming across all applications
- Gaming Setup: Steam, GameMode, Gamescope, and various gaming tools
- Development Envgironment: Pre-configured editors (Neovim, VSCode), terminal tools (Nushell, Ghostty), and AI agents
- AI Integration: Opencode with MCPs
- Secret Management: Encrypted secrets using sops-nix
- Pre-commit Hooks: Automated code formatting and linting
- ryzen: Main desktop configuration with Hyprland, gaming, and development tools
- aspire: Laptop configuration with Hyprland and power management
- razer: Server setup with media services (Immich, Jellyfin), and *arr stack
- oblak: NAS configuration with NFS shares and storage management
├── flake.nix # Main flake configuration
├── home/ # Home Manager configurations
│ ├── editors/ # Editor configurations (Neovim, VSCode)
│ ├── profiles/ # Host-specific home profiles
│ ├── programs/ # User programs (browsers, media, office, etc.)
│ ├── services/ # User services (notifications, media controls, wayland)
│ ├── terminal/ # Terminal apps, shell, and AI agents
│ └── theme/ # Theming and appearance
├── hosts/ # Host-specific configurations
│ ├── aspire/ # Laptop configuration
│ ├── common/ # Shared host configuration and secrets
│ ├── oblak/ # NAS configuration
│ ├── razer/ # Server configuration
│ └── ryzen/ # Desktop configuration
├── system/ # NixOS system modules
│ ├── core/ # Essential system configuration
│ ├── hardware/ # Hardware-specific modules
│ ├── network/ # Network services
│ ├── programs/ # System-wide programs
│ └── services/ # System services
├── lib/ # Custom library functions
├── modules/ # Custom NixOS/Home Manager modules
└── pkgs/ # Custom package definitions
# Build and switch to new configuration
sudo nixos-rebuild switch --flake .#ryzen
# Test configuration without switching
sudo nixos-rebuild test --flake .#ryzen
# Build specific hosts
nix build .#nixosConfigurations.ryzen.config.system.build.toplevel# Enter development shell with tools
nix develop
# Format all Nix files
nix fmt
# Build custom packages
nix build .#catppuccin-plymouth
nix build .#wl-ocr
nix build .#bibata-cursors-svgThe development shell includes:
- nixd: Nix language server
- nixfmt: Code formatter
- git: Version control
- just: Command runner
- repl: Custom REPL for configuration testing
Consistent Catppuccin theming across:
- Window manager (Hyprland)
- Terminal applications
- GTK/Qt applications
- Web browsers
- Development tools
Secrets are encrypted using sops-nix:
home/secrets.yaml- Home Manager secretshosts/common/secrets.yaml- Common host secrets
Update secret keys:
nix-shell -p sops --run "sops updatekeys path/to/secrets.yaml"- Hyprland: Wayland compositor with plugins (dynamic-cursors, hyprlux, hyprvibr)
- Noctalia: Shell and notification daemon
- Vicinae: Application launcher and AI assistant interface
- hypridle/hyprlock: Idle management and screen lock
- Neovim: Text editor with LSP support
- VSCode: IDE with extensions (also VSCode server support)
- Git: Version control with custom configuration
- Ghostty: Terminal emulator
- Nushell: Modern shell with structured data
- AI Agents: Claude, opencode, and MCP integration
- Steam: Gaming platform with Proton
- MPV: Media player
- Cider: Music streaming
- OBS: Screen recording
- GameMode: Performance optimization
- Zen Browser: Firefox-based browser
- Thunderbird: Email client
- Zathura: PDF viewer
- Nautilus/Thunar: File managers
This configuration is available under the terms specified in the LICENSE file.
This is a personal dotfiles repository, but feel free to:
- Use any parts of this configuration for your own setup
- Report issues or suggest improvements
- Submit pull requests for bug fixes
The configuration provides four system profiles:
- desktop: Full desktop environment with Hyprland, gaming, and development tools
- laptop: Desktop profile plus power management
- server: Docker, media services, and web services
- nas: Network storage with NFS and basic services