My personal NixOS configuration featuring:
- Flakes for reproducible builds
- Home Manager integration
- Modular structure with separate NixOS and Home Manager components
- Catppuccin theming (Macchiato Lavender variant)
├── hosts/ # Machine-specific configurations
├── modules/ # Reusable configuration modules
│ ├── nixos/ # System-level modules (for configuration.nix)
│ └── home-manager # User-level modules (for home.nix)
└── flake.nix # Flake configuration
- Display Manager: SDDM (with Catppuccin theme)
- Wallpaper Engine: HyprPaper
- Theme: Catppuccin Macchiato Lavender
- Window Manager: Hyprland (available through SDDM boot menu)
- Application Launcher: Rofi (Wayland version)
- Status Bar: Waybar
- Terminal: Alacritty
- Shell: Zsh with Oh My Zsh framework
- Icons: Papirus-Dark
sudo rm -rf /etc/nixos
sudo git clone https://github.com/win-hafus/nixos-config /etc/nixos
# Edit configuration files:
# - Set username in hosts/<your-host>.nix
# - Configure options in modules/nixos/core.nix
sudo nixos-rebuild switch --flake /etc/nixos#hfv5
- Clone the repository:
git clone https://github.com/win-hafus/nixos-config
- Import desired modules into your configuration
- Ensure all inputs are declared in your
flake.nix
{
inputs = {
nixpkgs.url = "nixpkgs/nixos-unstable";
catppuccin.url = "github:catppuccin/nix";
minegrub-world-sel-theme.url = "github:Lxtharia/minegrub-world-sel-theme";
spicetify-nix.url = "github:Gerg-L/spicetify-nix";
zen-browser = {
url = "github:0xc000022070/zen-browser-flake";
inputs.nixpkgs.follows = "nixpkgs";
};
home-manager = {
url = "github:nix-community/home-manager";
inputs.nixpkgs.follows = "nixpkgs";
};
};
outputs =
{
self,
nixpkgs,
home-manager,
minegrub-world-sel-theme,
catppuccin,
zen-browser,
spicetify-nix,
}@inputs:
{
nixosConfigurations.nixos = nixpkgs.lib.nixosSystem {
system = "x86_64-linux";
specialArgs = { inherit inputs; };
modules = [
./hosts/default/configuration.nix
catppuccin.nixosModules.catppuccin
home-manager.nixosModules.home-manager
minegrub-world-sel-theme.nixosModules.default
spicetify-nix.nixosModules.default
{
home-manager.extraSpecialArgs = { inherit inputs; };
home-manager.users.hfv5 = {
imports = [
./hosts/default/home.nix
catppuccin.homeModules.catppuccin
spicetify-nix.homeManagerModules.default
];
};
}
];
};
};
}
- Automatic Home Manager build from system configuration
- Shared packages between NixOS and Home Manager
${username}
variables for easy customization- Catppuccin theming for:
- GTK applications
- SDDM login manager
- Terminal tools (via catppuccin-nix)
- Dual desktop environment support:
- Default: Hyprland
- Replace all instances of
${username}
with your actual username - Wallpapers are managed through SWWW - configure in
home.nix