Critical hotfix is critical.
4.7 KiB
Hey, you. You're finally awake. You were trying to configure your OS declaratively, right? Walked right into that NixOS ambush, same as us, and those dotfiles over there.
Shell: | zsh + zgen |
DM: | lightdm + lightdm-mini-greeter |
WM: | bspwm + polybar |
Editor: | Doom Emacs (and occasionally vim) |
Terminal: | st |
Launcher: | rofi |
Browser: | firefox |
GTK Theme: | Ant Dracula |
Quick start
- Yoink NixOS 20.09 (must be newer than Sept 12, 2020 for
nixos-install --flake
). - Boot into the installer.
- Do your partitions and mount your root to
/mnt
git clone https://github.com/hlissner/dotfiles /mnt/etc/nixos
- Install NixOS:
nixos-install --root /mnt --flake /mnt/etc/nixos#XYZ
, whereXYZ
is your hostname. Use#generic
for a simple, universal config. - OPTIONAL: Create a sub-directory in
hosts/
for your device. See host/kuro as an example. - Reboot!
Management
And I say, bin/hey
. What's going on?
Command | Description |
---|---|
hey rebuild |
Rebuild this flake (shortcut: hey re ) |
hey upgrade |
Update flake lockfile and switch to it (shortcut: hey up ) |
hey rollback |
Roll back to previous system generation |
hey gc |
Runs nix-collect-garbage -d . Use sudo to clean system profile |
hey push REMOTE |
Deploy these dotfiles to REMOTE (over ssh) |
hey check |
Run tests and checks for this flake |
hey show |
Show flake outputs of this repo |
Frequently asked questions
-
Why NixOS?
Because declarative, generational, and immutable configuration is a godsend when you have a fleet of computers to manage.
-
How do I change the default username?
- Set
USER
the first time you runnixos-install
:USER=myusername nixos-install --root /mnt --flake #XYZ
- Or change
"hlissner"
in modules/options.nix.
- Set
-
How do I "set up my partitions"?
My main host has a README you can use as a reference. I set up an EFI+GPT system and partitions with
parted
andzfs
. -
Why did you write bin/hey?
I'm nonplussed by the user story for nix's CLI tools and thought fixing it would be more productive than complaining about it on the internet. Then I thought, why not do both?
-
How 2 flakes?
Would it be the NixOS experience if I gave you all the answers in one, convenient place?
No, but here are some resources that helped me:
- A three-part tweag article that everyone's read.
- An overengineered config to scare off beginners.
- A minimalistic config for scared beginners.
- A nixos wiki page that spells out the format of flake.nix.
- Official documentation that nobody reads.
- Some great videos on general nixOS tooling and hackery.
- A couple flake configs that I may have shamelessly rummaged through.
- What y'all will need when Nix drives you to drink.