No description
  • Nix 87.3%
  • Shell 5%
  • Python 3%
  • TypeScript 2%
  • JavaScript 1.3%
  • Other 1.4%
Find a file
2026-08-28 19:30:14 -07:00
hmModules Anki, initial base setup 2026-08-24 11:18:12 -07:00
hosts Ginko, update wireless networks 2026-08-17 07:27:18 -07:00
nixosModules Niri, add xdg-portal and screenshare 2026-08-28 19:30:14 -07:00
users Anki, initial base setup 2026-08-24 11:18:12 -07:00
.gitignore Gitignore, add result directory 2025-11-19 09:38:33 -08:00
.sops.yaml Ginko, initialize new pc 2026-07-12 14:27:10 -07:00
flake.lock Caelestia, remove caelestia 2026-08-19 10:53:59 -07:00
flake.nix Caelestia, remove caelestia 2026-08-19 10:53:59 -07:00
LICENSE Initial commit 2023-11-20 02:51:09 +00:00
README.md README, add a readme explaining the current state of the repository 2026-08-25 11:55:02 -07:00

Julia's Dotfiles

These are my dot files declared with Nix for a fully reproducible build.

These are my personal dotfiles, and they will likely not fit your needs. While the project is designed to allow configuration choices to be made, I have baked in a lot of personal decisions about what I would want. I would use this repository as a reference for creating your own dotfiles and not much more.

Hosts and Users

The repository currently hosts four hosts, and each host has a unique user which lives on it.

Ginko is my current ThinkPad laptop where I spend most of my time these days. He doesn't have much configuration on the host, but the user contains most of what I need for daily operations and development work.

Jibril is my retired Surface Laptop, she doesn't run as well as she used to. She is primarily there for historical reasons, as the machine name has been co-opted for a different use.

Onizuka is my desktop computer which is currently not plugged in. Built for gaming back when that was my focus, I don't need a fully set up machine anymore, and so he sits in storage. I plan to take him out and convert him into a more powerful remote machine on my LAN when I have time.

Juri is my cloud server. She is always on and hosts most of the services I need. In all likelihood you are reading this on winry.woach.me which is hosted on Juri. She has a barebones user and a heavy host file, in contrast to the other machines.

Repository layout

The repository is broken down into modules (nixosModules/ & hmModules/) and configurations (hosts/ & users/). Secrets are managed with sops, with rules for sops stored in .sops.yaml. Finally flake.nix acts as an entry point for the whole project.

flake.nix defines which configuration to use. Automatically with easy-hosts grabbing the host files from hosts/ and importing the nixosModules/. Manually with the user configurations being specified in the flake output since there is no "easy-users." Those users must also have a host specified in the form of "username@host" and the path to their configuration attached. The provided function userConfig automatically imports hmModules/.

hosts/ defines all hosts (distinct machines) which run NixOS. All configurations have access to secrets so long as they obey the regex in .sops.yaml, as well as all of the modules defined in nixosModules/.

nixosModules/ has three separate sections: apps, services, and automatic. The content of automatic/ are automatically applied to all hosts. Apps and Services are both programs which enhance the user experience in some way. Generally Apps need to be run, while Services will start automatically once enabled, but this isn't a hard and fast rule.

users/ defines users which may be attached to different machines. The configurations are done through Home Manager, and the users have access to all the modules in hmModules/. User's are assigned machines, meaning that some of their configurations may only work if the host they are assigned has them enabled.

hmModules/ has three separate sections: apps, services, and automatic. The content of automatic/ are automatically applied to all users. Apps and Services are both programs which enhance the user experience in some way. Generally Apps need to be run, while Services will start automatically once enabled, but this isn't a hard and fast rule.