||1 week ago|
|bin||1 week ago|
|config||1 week ago|
|hosts||1 week ago|
|lib||2 years ago|
|modules||1 week ago|
|overlays||2 years ago|
|packages||2 years ago|
|.gitignore||2 years ago|
|LICENSE||3 years ago|
|README.md||6 months ago|
|TODO.md||3 months ago|
|default.nix||2 weeks ago|
|flake.lock||1 week ago|
|flake.nix||2 weeks ago|
|shell.nix||1 month ago|
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.
Note that this repository is a fork of Henrik Lissner's dotfiles which I have modified and updated over the years to better suit my needs.
In case you need help getting started with NixOS and want to use these dotfiles as a starting point, feel free to raise issues asking for help or send me an Email to my Git commit address which you can find on my profile.
Screenshots 4K Display
|Shell:||zsh + zgen|
|DM:||lightdm + lightdm-mini-greeter|
|WM:||bspwm + polybar|
|Editor:||micro (and occasionally nvim)|
|GTK Theme:||Ant Dracula|
If you've never before installed NixOS, make sure to read through the official installation guide. This quick start guide is based on the installation instructions in the official NixOS manual so you might want to skim over them as well before getting started.
Yoink the minimal ISO image of NixOS from the official download page.
Verify integrity of the ISO image and flash to boot medium.
Boot into the installer.
Do your partitions and mount your root to
/mnt. I recommend first doing
sudo sufor ease of use. Be careful with those labels though.
nixos-generate-config --root /mntto produce the default
Make sure you've got a working network connection and clone the repo with
git clone https://codeberg.org/totoroot/dotfiles /mnt/etc/nixos.
In case this fails,
gitmight not be installed. Run
nix-env -iA nixos.gitto install and repeat step 4.
For a new host enter the cloned repo and duplicate an existing configuration (
cd nixos && cp -r hosts/purple hosts/<new-host>) and make adjustments with
Get rid of the default configuration with
rm /mnt/configuration.nixand override the hardware configuration in the cloned repo for your host with
cp /mnt/hardware-configuration.nix /mnt/etc/nixos/hosts/<new-host>/.
For a different partitioning scheme make sure to change the hardware-configuration with
Add nixPkgs channel and install flakes
nix-channel --add https://nixos.org/channels/nixpkgs-unstable nixpkgs && nix-channel --update && nix-env -iA nixpkgs.nixFlakes.
Install NixOS with configuration for host "purple"
nixos-install --root /mnt --flake /mnt/etc/nixos#purple.
And I say,
bin/hey. What's going on?
Usage: hey [global-options] [command] [sub-options] Available Commands: check Run 'nix flake check' on your dotfiles gc Garbage collect & optimize nix store generations Explore, manage, diff across generations help [SUBCOMMAND] Show usage information for this script or a subcommand rebuild Rebuild the current system's flake repl Open a nix-repl with nixpkgs and dotfiles preloaded rollback Roll back to last generation search Search nixpkgs for a package show [ARGS...] ssh HOST [COMMAND] Run a bin/hey command on a remote NixOS system swap PATH [PATH...] Recursively swap nix-store symlinks with copies (or back). test Quickly rebuild, for quick iteration theme THEME_NAME Quickly swap to another theme module update [INPUT...] Update specific flakes or all of them upgrade Update all flakes and rebuild system Options: -d, --dryrun Don't change anything; preform dry run -D, --debug Show trace on nix errors -f, --flake URI Change target flake to URI -h, --help Display this help, or help for a specific command -i, -A, -q, -e, -p Forward to nix-env
Some information to get you started configuring the install to your needs
Mimeapps can be set in
Frequently asked questions
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 the
USERenvironment variable the first time you run
USER=myusername nixos-install --root /mnt --flake /path/to/dotfiles#XYZ
- Or change
- Set the
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
Why did you write bin/hey?
I envy Guix's CLI and want similar for NixOS, but its toolchain is spread across many commands, none of which are as intuitive:
I don't claim
heyis the answer, but everybody likes their own brew.
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.
- Some notes about using Nix
- What helped me figure out generators (for npm, yarn, python and haskell)
- What y'all will need when Nix drives you to drink.