Welcome! This repository contains my personal NixOS configuration, organized for multiple hosts and modularity.
It’s a learning project, expect some experimentation and non-standard practices.
Warning
This is my first time using Nix and NixOS. I prioritized convenience and learning over best practices.
nixos-config/
├── flake.nix # Entrypoint (flake-based setup)
├── flake.lock # Flake lock file
├── hosts/ # Host-specific system configs
│ ├── amon/ # Main laptop
│ └── nixos/ # Virtual machine for testing
├── home/ # User-specific configs
│ └── lucas/ # User 'lucas' configuration
├── modules/ # Modular application configs
│ ├── wm/ # Window manager & related
│ ├── gui/ # GUI applications
│ └── tui/ # Terminal applications
└── docs/ # Documentation
Component | Technology/Module |
---|---|
Session Manager | SDDM |
Window Manager | Hyprland |
Bar | Waybar |
Application Launcher | rofi-wayland |
Notification Daemon | dunst |
Terminal Emulator | kitty |
Shell | fish |
System Info | fastfetch |
Text Editor | VSCode |
Networking | NetworkManager |
Color Scheme | Catppuccin Mocha |
Cursor | McMojave |
Lockscreen | Hyprlock |
Browser | Zen Browser |
Flatpak Integration | nix-flatpak |
Warning
This setup is tested only on my machines. It might need adjustments to work for you.
-
Clone this repo
git clone https://github.com/Caslus/nixos-config.git cd nixos-config
-
Review and edit host/user configs
Adjust files inhosts/
andhome/
as needed for your hardware and preferences. -
Rebuild your system
sudo nixos-rebuild switch --flake .#amon
Replace
amon
with your target host if needed. -
Update flake inputs
nix flake update
- Modularity:
Most configuration is split into reusable modules undermodules/
. - Home Manager:
User environments are managed via Home Manager. - Flakes:
This setup uses Nix flakes for reproducibility and easy updates.