Started as a fork of hlissner's dotfiles, but different design decisions have been made to differentiate the two since.
Feel free to poke around. Contact me if you have any questions!
First, snag a copy of the newest version of NixOS by building it off of a previous machine from source.
This configuration offers usb
, a CLI-based live USB configuration with some nice utilities for getting started.
If you'd like to use that system, load the ISO onto a USB with the following commands from an existing Nix system with Nix Flakes enabled:
nix build .#nixosConfigurations.iso-install.config.system.build.isoImage --impure
sudo cp /path/to/iso/in/nix/store /dev/sda-usb-device-name
sudo sync
It's often the case that older version of Linux don't have support for utilities you want, and it's nice to have access to a graphical installer for most of the process - which none of the nightly NixOS ISOs support.
Move that ISO to a flash drive (mv path/to/firmware.iso drive-address
) and make sure to sync
afterwards.
After following the default NixOS install instructions off of that flash drive:
- Enter a shell with the necessary dependencies.
nix-shell -p git nixFlakes
- Clone this repository into the configuration folder.
chown -R nixos /mnt/boot/nixos
git clone https://github.com/jakeisnt/nixcfg /mnt/boot/nixos
- Generate a configuration for this machine (ensure that you've mounted swap space)
nixos-generate-config --root /mnt
mv configuration.nix hosts/$HOSTNAME/default.nix
mv hardware-configuration.nix hosts/$HOSTNAME/
-
Reference previous configurations when rewriting
default.nix
to use the desired format. Do not mess this up; make sure you give yourself things like a window manager and internet access. remember to import../personal.nix
fromdefault.nix
in addition to the hardware configuration. -
Install the configuration.
nixos-install --root /mnt --impure --flake .#$HOSTNAME
You should be set! Reboot into the machine you've just configured. Make sure to commit to this repository with that machine's configuration.