My personal NixOS configuration managed using Nix Flakes and Home Manager.
The goal of this repository is to keep my entire system reproducible, declarative, and easy to rebuild.
- NixOS configuration using flakes
- Home Manager integration
- Modular system configuration
- Declarative package management
- Managed dotfiles
- Managed Niri window manager configuration
- Reproducible development environments
- NVIDIA GPU configuration
- Custom desktop setup
.
├── flake.nix
├── flake.lock
│
├── system/
│ ├── configuration.nix
│ └── modules/
│ ├── audio.nix
│ ├── bluetooth.nix
│ ├── boot.nix
│ ├── desktop.nix
│ ├── networking.nix
│ ├── nvidia.nix
│ ├── security.nix
│ ├── services.nix
│ └── users.nix
│
└── home/
├── default.nix
├── modules/
│ ├── dotfiles.nix
│ ├── homePackages.nix
│ ├── misc.nix
│ └── session.nix
│
├── dotfiles/
│ ├── niri/
│ ├── waybar/
│ ├── alacritty/
│ ├── fuzzel/
│ └── others...
│
└── resources/
└── wallpapers/
After changing the configuration:
sudo nixos-rebuild switch --flake .#NixOSTo test a configuration without switching:
sudo nixos-rebuild test --flake .#NixOSUser-level configuration is handled through Home Manager.
Managed items include:
- Applications
- Environment variables
- Desktop configuration
- Dotfiles
- User resources
Changes to Home Manager are applied automatically when rebuilding the system.
Current desktop stack:
- Window Manager: Niri
- Status Bar: Waybar
- Launcher: Fuzzel
- Terminal: Alacritty
- Wallpaper: Swaybg
- Lock Screen: Swaylock
- Notifications: Mako
This configuration follows a few principles:
- Keep the system declarative
- Avoid manual configuration drift
- Separate system configuration from user configuration
- Keep important files tracked in Git
- Prefer reproducibility over convenience
Development environments are handled separately using Nix flakes.
Projects can provide their own:
nix developenvironment instead of globally installing every dependency.
Future improvements may include:
- direnv integration
- reusable flake templates
- better development environment automation
This configuration is continuously evolving.
Current goals:
- Improve Emacs environment
- Expand Home Manager coverage
- Remove remaining unmanaged dotfiles
- Improve development workflows
- Keep the system clean and reproducible
Built with NixOS ❤️
Also if you found out that this is AI generated then you are correct. I am too lazy to make a proper README.md