Note
Before proceeding with the installation, check these files and adjust them for your system:
hosts/Default/variables.nix: Contains host-specific variables.hosts/Default/host-packages.nix: Lists installed packages for the host.hosts/Default/configuration.nix: Module imports for the host and extra configuration.
You can install on a running system or from the NixOS live installer. Get the minimal ISO from the NixOS website.
- Clone the Repository:
git clone https://github.com/Sly-Harvey/NixOS.git ~/NixOS- Change Directory:
cd ~/NixOS- Run the Installer:
./install.shThe install and rebuild scripts automate the setup process, including hosts, username, and applying the configuration. It also automatically generates the hardware-configuration.nix file based on your system's detected hardware, eliminating the need to manually generate it.
Method 1: Automatic - run the installer again to select or create another host:
./install.shMethod 2: Manual:
-
Copy
hosts/Defaultto a new directory (e.g.,hosts/Laptop) -
Edit the new host's
variables.nixandhost-packages.nix -
Add the host to
flake.nix:nixosConfigurations = { Default = mkHost "Default"; Laptop = mkHost "Laptop"; };
- Rebuild with the new hostname using either
nixos-rebuildornh(see Rebuilding below). Once rebuilt, any rebuilding method can be used, as the host name will be implicitly recognised.
Apply configuration changes:
- Keyboard shortcut:
Super + U - rebuild script:
rebuild - nixos-rebuild:
sudo nixos-rebuild switch --flake ~/NixOS#<HOST> - nh:
nh os switch --hostname <HOST>
Replace <HOST> with the name of your host (e.g., Laptop).
List generations:
list-gensRollback to generation N:
rollback NReplace N with the generation number (e.g., 69).
View all keybindings with Super + ? or Super + Ctrl + K.
Pre-configured dev shells for various languages are included.
Initialize a project from a template:
nix flake init -t ~/NixOS#<TEMPLATE_NAME>Create a new project directory:
nix flake new -t ~/NixOS#<TEMPLATE_NAME> <PROJECT_NAME>Templates are defined in dev-shells/default.nix (python, node, etc.).
Enter the shell:
cd <PROJECT_NAME>
nix developIf you're using direnv, the shell activates automatically.
| Credit | Reason |
|---|---|
| Hyprland-Dots | Scripts and Waybar templates |
| HyDE | Additional scripts |
| rofi | Rofi launcher styles |
| dev-templates | Development templates |
| Vimjoyer | NixOS tutorials |






