# Kieran's Dots

> [!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
```bash
~/dots # symlinked to /etc/nixos
├── dots # any config files that need to be symlinked go here, e.g. my hyprland config
│ └── wallpapers
├── machines
│ ├── atalanta # my macOS M4 machine
│ ├── ember # my dell r210 server (in my basement)
│ ├── moonlark # my framework 13
│ │ └── home
│ ├── nest # shared tilde server through hc
│ └── tacyon # rpi 5
├── modules
│ ├── home # home-manager modules
│ │ ├── aesthetics # theming and wallpapers
│ │ ├── apps # any app specific config
│ │ │ └── crush # vendored for now
│ │ ├── system # home-manager system configs
│ │ └── wm # window managers; just hyprland for now
│ │ └── hyprland
│ └── nixos # nixos modules
│ ├── apps # also app specific configs
│ └── system # pam and my fancy wifi module for now
└── secrets # keep your grubby hands (or paws) off my data
19 directories
```
## Installation
> [!WARNING]
> Also to note that this configuration will **not** work if you do not change any of the [secrets](./secrets) since they are encrypted.
You could either install a NixOS machine (rn there is just `moonlark`), use the home-manager instructions, or use nix-darwin for macOS.
### macOS with nix-darwin
For macOS machines, you can use nix-darwin:
1. Install Nix using the determinate systems installer:
```bash
curl -fsSL https://install.determinate.systems/nix | sh -s -- install
```
2. Clone the repository:
```bash
git clone git@github.com:taciturnaxolotl/dots.git
cd dots
```
3. Apply the configuration:
```bash
darwin-rebuild switch --flake .#atalanta
```
### Home Manager
Install nix via the determinate systems installer
```bash
curl -fsSL https://install.determinate.systems/nix | sh -s -- install --determinate
```
then copy ssh keys and chmod them
```bash
scp .ssh/id_rsa* nest:/home/kierank/.ssh/
ssh nest chmod 600 ~/.ssh/id_rsa*
```
and then clone the repo
```bash
git clone git@github.com:taciturnaxolotl/dots.git
cd dots
```
and execute the machine profile
```bash
nix-shell -p home-manager
home-manager switch --flake .#nest
```
setup atuin and import previous shell history
```bash
atuin login
atuin import
```
### NixOS
> These instructions have been validated by installing on my friend's machine ([`Nat2-Dev/dots`](https://github.com/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](/INSTALL_GUIDE.md)
```bash
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](https://nixos.org/download.html)
Connect to wifi
```bash
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`
```bash
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
```bash
sudo -i
```
Enable git and rebuild your flake with the following
```bash
sed -i 's/^{$/{\n programs.git.enable = true;/' /etc/nixos/configuration.nix
nixos-rebuild switch
```
Download the disk configuration and run it
```bash
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
```bash
nixos-generate-config --root /mnt
cd /mnt/etc/nixos
```
Clone this repo to your `/mnt/etc/nixos` folder
```bash
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
```bash
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
```bash
passwd kierank
```
Move the config to your local directory, link to `/etc/nixos`, and change permissions
```bash
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/.*
```
17. 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)
```bash
sudo fprintd-enroll -f right-index-finger kierank
sudo fprintd-verify kierank
```
Finally enable [atuin](https://atuin.sh/)
```bash
atuin login
atuin sync
```
## Screenshots
I've stuck the rest of the screenshots in a spoiler to preserve space
**Last updated: 2024-12-27**






© 2025-present Kieran Klukas