- Nix 100%
| .github | ||
| core | ||
| modules | ||
| .gitignore | ||
| CLAUDE.md | ||
| flake.lock | ||
| flake.nix | ||
| todo.txt | ||
this md is outdated and leftover from the fork days
My NixOS Configuration
Screenshots
Table of Contents
Installation
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.
Installation Steps
- Clone the Repository:
git clone https://github.com/Sly-Harvey/NixOS.git ~/NixOS
- Change Directory:
cd ~/NixOS
- Run the Installer:
./install.sh
The 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.
Usage
Managing Hosts
Method 1: Automatic - run the installer again to select or create another host:
./install.sh
Method 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.
Rebuilding
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).
Rollbacks
List generations:
list-gens
Rollback to generation N:
rollback N
Replace N with the generation number (e.g., 69).
Keybindings
View all keybindings with Super + ? or Super + Ctrl + K.
Development Shells
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 develop
If you're using direnv, the shell activates automatically.
Credits/Inspiration
| Credit | Reason |
|---|---|
| Hyprland-Dots | Scripts and Waybar templates |
| HyDE | Additional scripts |
| rofi | Rofi launcher styles |
| dev-templates | Development templates |
| Vimjoyer | NixOS tutorials |




