Skip to content

edmundmiller/dotfiles

Repository files navigation

Made with Doom Emacs NixOS 24.05

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

  1. Yoink NixOS 20.09 (must be newer than Sept 12, 2020 for nixos-install --flake).
  2. Boot into the installer.
  3. Do your partitions and mount your root to /mnt
  4. git clone https://github.com/emiller88/dotfiles /etc/nixos
  5. Install NixOS: nixos-install --root /mnt --flake #XYZ, where XYZ is your hostname. Use #generic for a simple, universal config.
  6. OPTIONAL: Create a sub-directory in hosts/ for your device. See host/kuro as an example.
  7. 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

  • How do I change the default username?

    1. Set USER the first time you run nixos-install: USER=myusername nixos-install --root /mnt --flake #XYZ
    2. Or change "hlissner" in modules/options.nix.
  • 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 and zfs.

  • How 2 flakes?

    It wouldn't be the NixOS experience if I gave you all the answers in one, convenient place.

Usage as a flake

FlakeHub

Add dotfiles to your flake.nix:

{
  inputs.dotfiles.url = "https://flakehub.com/f/Emiller88/dotfiles/*.tar.gz";

  outputs = { self, dotfiles }: {
    # Use in your outputs
  };
}