| * Updated emacs-overlay: github:nix-community/emacs-overlay/7868ad9dadc16ac8a46a294fab0e42bb2e208a83 -> github:nix-community/emacs-overlay/2f4388220c02d963eb85a88d55d044c22e8a8218 * Updated home-manager: github:rycee/home-manager/1ee1d01daa19b3a6d16b5fb680c31a2bc110ce24 -> github:rycee/home-manager/2e795f3efd6265e3d538d4ee78bba773e1044340 * Updated nixos-hardware: github:nixos/nixos-hardware/0cb5491af9da8d6f16540ffc4db24e2361852e46 -> github:nixos/nixos-hardware/115770eed0c0fa50c1277cd0f7fe0f15501dbc43 * Updated nixpkgs-unstable: github:NixOS/nixpkgs/328eff7545bfd86447c2f2ad4bdd2c2f1d2c7758 -> github:NixOS/nixpkgs/e0f6e514b1194dab73a627bced804805252befd1 | ||
|---|---|---|
| bin | ||
| config | ||
| hosts | ||
| lib | ||
| modules | ||
| overlays | ||
| packages | ||
| templates/minimal | ||
| .gitignore | ||
| default.nix | ||
| flake.lock | ||
| flake.nix | ||
| LICENSE | ||
| README.md | ||
| shell.nix | ||
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 the latest build of NixOS 21.03.
- Boot into the installer.
- Do your partitions and mount your root to /mnt(for example)
- Install these dotfiles:
- nix-shell -p git nixFlakes
- git clone https://github.com/hlissner/dotfiles /mnt/etc/nixos
- Install NixOS: nixos-install --root /mnt --flake /mnt/etc/nixos#XYZ, whereXYZis the host you want to install. Use#genericfor a simple, universal config, or create a sub-directory inhosts/for your device. See host/kuro for an example.
- Reboot!
- Change your rootand$USERpasswords!
Management
And I say, bin/hey. What's going on?
| Command | Description | 
|---|---|
| hey check | Run tests and checks for this flake | 
| hey gc | Runs nix-collect-garbage -d. Use--allto clean up system profile too. | 
| hey rebuild | Rebuild this flake (shortcut: hey re) | 
| hey rollback | Roll back to previous system generation | 
| hey show | Show flake outputs of this repo | 
| hey ssh REMOTE [COMMAND] | Run a bin/heycommand on REMOTE over ssh | 
| hey upgrade | Update flake lockfile and switch to it (shortcut: hey up) | 
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 USERthe first time you runnixos-install:USER=myusername nixos-install --root /mnt --flake /path/to/dotfiles#XYZ
- Or change "hlissner"in modules/options.nix.
 
- Set 
- 
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.
- 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.