Kieran's opinionated (and probably slightly dumb) nix config
Shell 51.1%
Nix 37.0%
JavaScript 5.4%
Other 6.5%
510 2 0

Clone this repository

https://tangled.org/dunkirk.sh/dots
git@knot.dunkirk.sh:dunkirk.sh/dots

For self-hosted knots, clone URLs may differ based on your setup.

README.md

Kieran's Dots#

nix rebuild with flake update

CAUTION

These dots are highly prone to change / breakage.

I am not a nix os expert (this is my first time touching nix), so I'm not sure if this will work or not. I'm just trying to get my dots up on github.

After 284 successful days of these dots being in constant operation, many many rebuilds, and 364 commits these dots have been rock solid and I have no complaints.

The layout#

~/dots # symlinked to /etc/nixos
├── home-manager # all the config's that use home manager and stored centraly here
│   ├── dots # any config files that need to be symlinked go here eg. my hyprland config
│   │   └── wallpapers
│   ├── machines # the different machines by hostname
│   │   ├── ember # dell poweredge r210 running ubuntu
│   │   ├── moonlark # my framework laptop
│   │   ├── nest # tilde server from hackclub
│   │   └── tacyon # rpi 5 from cyber camp
│   └── modules
│       ├── apps # config for various apps goes here
│       └── wm # currently i only have hyprland
│           └── hyprland
├── moonlark # prone to moving but my nixos config
└── secrets # change these lol; all encrypted with agenix

12 directories

Installation#

WARNING

Also to note that this configuration will not work if you do not change any of the secrets since they are encrypted.

You could either install a NixOS machine (rn there is just moonlark) or you can use the home-manager instructions

Home Manager#

Install nix via the determinate systems installer

curl -fsSL https://install.determinate.systems/nix | sh -s -- install --determinate

then copy ssh keys and chmod them

scp .ssh/id_rsa* nest:/home/kierank/.ssh/
ssh nest chmod 600 ~/.ssh/id_rsa*

and then clone the repo

git clone git@github.com:taciturnaxolotl/dots.git
cd dots

and execute the machine profile

nix-shell -p home-manager
home-manager switch --flake .#nest

setup atuin and import previous shell history

atuin login
atuin import

NixOS#

These instructions have been validated by installing on my friend's machine (Nat2-Dev/dots)

You have two options for installation: either the full guide as follows or the install script below and instructions in INSTALL_GUIDE.md

curl -L https://raw.githubusercontent.com/taciturnaxolotl/dots/main/install.sh -o install.sh
chmod +x install.sh
./install.sh

The manual way#

Install NixOS via the official guide

Connect to wifi

wpa_passphrase your-ESSID your-passphrase | sudo tee /etc/wpa_supplicant.conf
sudo systemctl restart wpa_supplicant

Check with ping 1.1.1.1 if that doesn't work then use wpa_cli

sudo systemctl start wpa_supplicant
wpa_cli

add_network 0

set_network 0 ssid "put your ssid here"

set_network 0 psk "put your password here"

enable network 0

exit

Aquire root permissions while keeping your current context with

sudo -i

Enable git and rebuild your flake with the following

sed -i 's/^{$/{\n  programs.git.enable = true;/' /etc/nixos/configuration.nix
nixos-rebuild switch

Download the disk configuration and run it

curl -L https://github.com/taciturnaxolotl/dots/raw/main/moonlark/disk-config.nix -o /tmp/disk-config.nix
nix --experimental-features "nix-command flakes" run github:nix-community/disko -- --mode destroy,format,mount /tmp/disk-config.nix

Run nixos generate config and cd into it

nixos-generate-config --root /mnt
cd /mnt/etc/nixos

Clone this repo to your /mnt/etc/nixos folder

rm *
git clone https://github.com/taciturnaxolotl/dots.git .

Add your ssh private key to /mnt/etc/ssh/id_rsa

install the flake, and umount the filesystem, and then reboot

nixos-install --flake .#moonlark --no-root-passwd
reboot

Pray to the nix gods that it works 🙏

If it worked then you should be able to login with the user kierank and the password lolzthisaintsecure!

You should immediately change the password

passwd kierank

Move the config to your local directory, link to /etc/nixos, and change permissions

sudo mv /etc/nixos ~/dots
sudo ln -s ~/dots /etc/nixos
sudo chown -R $(id -un):users ~/dots
sudo chown kierank -R ~/dots
sudo chown kierank -R ~/dots/.*
  1. Setup the fingerprint reader and verify it works (you may need to swipe your finger across the fingerprint sensor instead of simply laying it there)
sudo fprintd-enroll -f right-index-finger kierank
sudo fprintd-verify kierank

Finally enable atuin

atuin login
atuin sync

Screenshots#

I've stuck the rest of the screenshots in a spoiler to preserve space

Last updated: 2024-12-27

the github page of this repo nautilus file manager neofetch spotify with cava next to it zed with the hyprland config open cool-retro-term with neofetch

Credits#

Thanks a bunch to the following people for their dots, configs, and general inspiration which i've shamelessly stolen from:

📜 License#

The code is licensed under MIT! That means MIT allows for free use, modification, and distribution of the software, requiring only that the original copyright notice and disclaimer are included in copies. All artwork and images are copyright reserved but may be used with proper attribution to the authors.

© 2025-present Kieran Klukas