Note
This repository is a fork of Sly-Harvey/NixOS.
The settings found here are a personalization of the original project to better suit my workflow. Feel free to explore, but I recommend checking out the original author's repository for the base version (which is already pretty complete and incredible).
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"; };
-
Track the new host with git:
git add hosts/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 |






