This repository contains my personal NixOS system configuration with a modular structure for easy management and replication.
- Enable wpa_supplicant for WiFi:
sudo systemctl enable wpa_supplicant
- Configure your WiFi credentials:
- Navigate to
modules/core/networking
- Add your SSID and PSK in the appropriate configuration section
- Navigate to
.
├── programs/ # Package configurations
│ ├── editors/ # Text editors (neovim, etc.)
│ ├── terminal/ # Terminal emulators and tools
│ ├── containers/ # Docker, kubernetes
│ ├── languages/ # Programming languages and LSP
│ └── media/ # Browsers and media tools
├── desktop/ # Desktop environment (Hyprland)
└── modules/ # Core system modules
└── core/ # Core system configurations
- Navigate to the appropriate directory in
programs/
- Add package to the relevant
default.nix
list for default configuration - For custom configurations, create a new .nix file (e.g.,
neovim.nix
)
- Remove the SHA hash value in the configuration
- Replace with empty quotes
""
- Run
nixos-rebuild
- The build will fail and provide the correct hash
- Replace the empty quotes with the new hash
- Run
nixos-rebuild
again
Hyprland configuration can be found in the desktop
directory. Customize window management, keybindings, and appearance settings here.
- Each directory in
programs/
supports both default package installation and custom configurations - Custom configurations are automatically imported from .nix files in their respective directories
- The modular structure allows for easy addition and removal of components
To rebuild your system after making changes:
sudo nixos-rebuild switch
For development/testing:
sudo nixos-rebuild test