Skip to content

win-hafus/nixos-config

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

NixOS Configuration

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)

Repository Structure

├── 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

Key Components

System

  • Display Manager: SDDM (with Catppuccin theme)
  • Wallpaper Engine: HyprPaper
  • Theme: Catppuccin Macchiato Lavender

User Environment

  • 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

Installation

Option 1: Clean Install (Wipes existing configuration)

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

Option 2: Integrate with Existing Configuration

  1. Clone the repository:
git clone https://github.com/win-hafus/nixos-config
  1. Import desired modules into your configuration
  2. Ensure all inputs are declared in your flake.nix

Flake Inputs

{
  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
              ];
            };
          }
        ];
      };
    };
}

Features

  • 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

Notes

  1. Replace all instances of ${username} with your actual username
  2. Wallpapers are managed through SWWW - configure in home.nix

References

Releases

No releases published

Packages

No packages published