| * Updated agenix: github:ryantm/agenix/ed7e69bff3c17671349839f696e88e345eb9eb24 -> github:ryantm/agenix/9eb981eeb552e0856cb562b7643b311933a0e992 * Updated emacs-overlay: github:nix-community/emacs-overlay/063ee066b5095dd2f21f47c582b04024674974a8 -> github:nix-community/emacs-overlay/daa4b15755f6cccb462efed696abceee0994bb96 * Updated home-manager: github:rycee/home-manager/f45c7000d544f17e5499e2ae6b505b5f705c5d61 -> github:rycee/home-manager/040ea28e448a93d24540b7cf2eda4b25300c5ab1 * Updated nixos-hardware: github:nixos/nixos-hardware/c9b965a43e582765f797f8b75d50cb2874b30f30 -> github:nixos/nixos-hardware/831de9cac9ff2ea8cf4c3742020ea92e82ac8ac3 * Updated nixpkgs: github:NixOS/nixpkgs/ff96a0fa5635770390b184ae74debea75c3fd534 -> github:NixOS/nixpkgs/29b0d4d0b600f8f5dd0b86e3362a33d4181938f9 * Updated nixpkgs-unstable: github:NixOS/nixpkgs/07b0c7bc4104b87cb5223ec10e32b863d10768ad -> github:NixOS/nixpkgs/d02b1cc8ed29b6967119fd95267ee1a955015d59 Also, removed noexec from /tmp because it screws with build processes that deploy/execute scripts to/out of /tmp, causing permission errors while building. | ||
|---|---|---|
| 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.05.
- 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?
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
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 you manage secrets? With agenix. 
- 
How do I change the default username? - Set the USERenvironment variable the first time you runnixos-install:USER=myusername nixos-install --root /mnt --flake /path/to/dotfiles#XYZ
- Or change "hlissner"in modules/options.nix.
 
- Set the 
- 
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: nix,nix-collect-garbage,nixos-rebuild,nix-env,nix-shell.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. Suffer my pain: - 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.