the home of my dotfiles and nix configuration files
Find a file
2026-02-20 17:14:03 +11:00
assets chore: redo README completely 2025-06-09 01:34:51 +10:00
hosts miki: remove mc server configuration 2026-01-18 00:30:42 +11:00
modules chore: move all service data to /media/apps 2026-02-20 17:14:03 +11:00
stow nvim: update plugins 2026-02-20 17:14:03 +11:00
.gitignore chore: ignore nix build result folder 2025-10-06 20:51:53 +11:00
backup.sh chore: add backup script 2026-01-19 19:16:37 +11:00
conf.sh conf.sh: use sudo for darwin-rebuild 2025-05-24 15:20:49 +10:00
flake.lock nix: update flake sources to c2a0396 2026-01-17 17:17:27 +11:00
flake.nix miki: add caddy 2026-01-18 00:30:42 +11:00
LICENSE chore: add BSD0 license 2025-05-03 16:34:35 +10:00
README.md README: change shell to fish 2025-06-21 20:19:21 +10:00

dots

overview

my dotfiles for NixOS, macOS or POSIX systems. primarily for systems that support Nix since they have declarative configuration.

linux specific:

installation

NixOS

boot up a NixOS live installation image and clone the flake. run the following if reinstalling on a host:

sudo nano /tmp/secret.key        # set password used to unlock LUKS encryption
sudo nix --experimental-features "nix-command flakes" run github:nix-community/disko/latest -- --mode destroy,format,mount /path/to/disko-config.nix  # partition drives w/ disko
sudo nixos-install --flake .#HOSTNAME # install base NixOS system

during installation set a root password when prompted and reboot as soon as the installation finishes. on first boot switch to a new TTY using ctrl+alt+f1,f2,f3,etc, login as root and set a password for your user. then login as your normal user, connect to the wifi with nmtui, apply the dotfiles with stow and set a wallpaper with matugen to ensure anything that depends on a configuration file generated from it works. if you cannot get a wallpaper you can use matugen color hex FFFFFF to generate matugen themes from a colour.

setting up a new system

if setting up a new system, first boot up a NixOS live installation image and run:

nixos-generate-config --dir hosts/HOSTNAME   # change to hostname of new system
nano flake.nix                               # add new host in flake.nix

then, commit changes to the repository and continue with the steps to reinstall a NixOS system above.

secure boot

If you want to setup secure boot for you system, you need to first complete an installation without the secureboot module enabled. after that is done continue with the below

sudo nix run nixpkgs#sbctl create-keys       # create signing keys for boot images
nano flake.nix && sudo nixos-rebuild switch  # add the secureboot module to the host
sudo sbctl verify                            # check to see if some files are signed, it is normal for some files not to be signed.

then reboot your system and enter UEFI setup. try to find an option to enroll secureboot keys, after that is done boot up your NixOS system again. run sudo nix run nixpkgs#sbctl -- enroll-keys --microsoft when your back in your system. after enrolling your secure boot keys, you must enter UEFI setup again and enable UEFI secureboot.

macOS

after going through the MacOS setup wizard, do the following:

xcode-select --install                             # install xcode developer tools
curl -fsSL https://install.determinate.systems/nix | sh -s -- install --determinate # install determinate nix
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)" # install brew package manager
git clone REPO_URL                                 # clone nix flake to system
nix run nix-darwin/master#darwin-rebuild -- switch # switch to nix flake configuration

after switching to the nix flake you will need to do the following manually:

  • set display scaling to spacious
  • disable spotlight's keyboard shortcut and setup raycast
  • setup rectangle, lulu, easy move+resize, linearmouse, battery and alttab
  • enable the keybinds to switch workspaces in settings
  • enable firewall

POSIX/linux system

you will need to first install stow and git using your distro's package manager. after that you can link the dotfiles with stow stow.

you probably also may need to install various CLI apps like:

  • zsh
  • bat
  • zoxide
  • neovim
  • tlrc
  • file
  • ripgrep
  • wget
  • unzip
  • fastfetch
  • trash-cli

a full list of CLI apps needed is in modules/shell.nix

misc

all content in this repository is licensed under the BSD0 license aka 0-Clause BSD license.

Permission to use, copy, modify, and/or distribute this software for
any purpose with or without fee is hereby granted.

THE SOFTWARE IS PROVIDED “AS IS” AND THE AUTHOR DISCLAIMS ALL
WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES
OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE
FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY
DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN
AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT
OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.