Personal multi-host NixOS configuration using nixos-unstable and standalone Home Manager.
- Configured Hyprland desktop with Ly and UWSM
- Waybar, Rofi, SwayNC, Kitty, Firefox, and desktop theming
- Docker, Kubernetes, cloud, database, and development tools
- NetworkManager OpenVPN support and optional KVM/virt-manager
- Optional gaming tools with Lutris, GameMode, Wine, and Winetricks
System features are separate profiles under modules/nixos/profiles/, so each host can choose what it needs.
- Fork or clone the repository.
- Edit
users/primary/settings.nixwith your username and public SSH key. - Create these files for the machine, using
hosts/nixuwus/as an example:
hosts/<host>/default.nix
hosts/<host>/home.nix
hosts/<host>/boot.nix
hosts/<host>/hardware-configuration.nix
Generate a new hardware configuration for the machine. Do not copy the nixuwus hardware file.
- Register the host in
hosts/default.nix:
my-host = {
system = "x86_64-linux";
nixosModules = [ ./my-host/default.nix ];
homeModules = [ ./my-host/home.nix ];
};- Choose the profiles in
hosts/<host>/default.nix. Leave out Hyprland, gaming, virtualization, or other profiles the host does not need.
Track the new files with Git before evaluating the flake.
- Validate and apply:
HOST=my-host
USER_NAME=my-user
nix fmt -- --check .
nix flake check --show-trace
sudo nixos-rebuild switch --flake ".#$HOST"
nix run .#home-manager -- switch --flake ".#${USER_NAME}@${HOST}"users/primary/home/desktop/hyprland/
Reload an active session with hyprctl reload.
Update the rolling package snapshot with:
nix flake lock --update-input nixpkgs