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, and various gaming tools
- Development Environment: Pre-configured editors, terminal tools, and language servers
- 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
- server: Minimal server setup with Docker and Discord bot services
├── flake.nix # Main flake configuration
├── home/ # Home Manager configurations
│ ├── programs/ # User programs (browsers, games, media, etc.)
│ ├── services/ # User services (notifications, media controls)
│ ├── terminal/ # Terminal apps and shell configuration
│ └── theme/ # Theming and appearance
├── hosts/ # Host-specific configurations
│ ├── ryzen/ # Desktop configuration
│ └── server/ # Server 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
# 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-svg
The development shell includes:
- nil: Nix language server
- nixfmt-rfc-style: Code formatter
- git: Version control
- 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 secretshosts/server/secrets.yaml
- Server-specific secrets
Update secret keys:
nix-shell -p sops --run "sops updatekeys path/to/secrets.yaml"
- Hyprland: Wayland compositor
- Waybar: Status bar
- Rofi/Wofi: Application launchers
- Mako: Notifications
- Neovim: Text editor with LSP support
- VSCode: IDE with extensions
- Git: Version control with custom configuration
- Ghostty: Terminal emulators
- Steam: Gaming platform with Proton
- MPV: Media player
- Cider: Music streaming
- OBS: Screen recording
- Firefox/Chromium: Web browsers
- 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