⚠️ I am not an authority onNix
orNixOS
. I am merely an apprentice, an Alice navigating through Wonderland. At least, for now.
Anyway, here are my dotfiles. I hope you like them!
The modules are grouped to be almost purely functional. As a result, you will often find both the system configuration and the home-manager configuration in the same place. Not all NixOS users follow this paradigm.
This repository has become more opinionated over time and now requires passing down variables from flake.nix
to fetch the appropriate host
and user
specific configurations for a given device.
📊 Diagrams
Disclaimer: This image is from erictossell, and the overall project is heavily inspired by his config, so check it out too!
flake.nix
: Entry point and system configurationhosts/
: Host-specific configurationsmodules/
: Reusable configuration modulesusers/
: User-specific configurationsscripts/
: Utility scripts
- Clone the repository to
/etc/nixos
- Choose or create a host configuration
- Run
sudo nixos-rebuild switch --flake .#<hostname>
- Minimal: Basic system without DE
- Desktop: Full desktop environment with Hyprland (NVIDIA Drivers)
- Development: Desktop with development tools
- Gaming: Desktop with gaming tools (NVIDIA Drivers)
- Create a new directory under
hosts/
- Add hardware-configuration.nix
- Configure host-specific settings
- Add to flake.nix
- Update system:
sudo nixos-rebuild switch --flake .#<hostname>
ornh os switch
- Clean old generations:
sudo nix-collect-garbage -d
ornh clean all
- Update flake inputs:
nix flake update