Skip to content


Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?

Latest commit


Git stats


Failed to load latest commit information.
Latest commit message
Commit time

NixOS Configuration

This repository contains the NixOS system and user profile configuration files for my machines. For an overview and more thorough description, read NixOS: Confederation (

I rarely install new machines and thus haven't really invested the time to automate this process in a good way. The steps under Installation are most likely borken or incomplete. Your best bet is to download and install NixOS following the regular documentation, then simply build and update using nixos-rebuild switch --flake ..


Install SSH keys on machine

Use a local keyboard and mouse or remote console to start up a shell on the machine. Then add public keys as desired to .ssh/authorized_keys for remote access.

$ mkdir .ssh
$ curl -o .ssh/authorized_keys

Copy installation files to host

The following command will prompt for one of the deploy.nodes hosts to copy the installation files to.

$ ./bootstrap/

Start NixOS installation

Begin the installation by invoking the install script, either on console or over SSH:

$ sudo ./bootstrap/

The command will prompt for a system profile to install.


Installing emacs dependencies:

$ ~/.emacs.d/bin/doom sync

After launching emacs, install all-the-icons:

(all-the-icons-install-fonts t)


$ sudo nixos-rebuild <switch|test|build> --flake .

Non-NixOS Linux / Windows Subsystem for Linux (WSL)


$ ./bootstrap/ <machine>
$ ./result/activate


Either use the script above or the following once Home Manager is installed:

$ home-manager <build|switch> --flake .#<machine>