Mia's dotfiles and Nix config#
This repo contains my Nix config (using flakes and Lix), and dotfiles for various tools.
Profiles#
There's quite a few different profiles defined in modules/base/profiles.nix to turn on/off different features
| Name | Info |
|---|---|
| Devel | Turns on development tools and langs |
| Gaming | Turns on steam and other launchers |
| Graphical | Turns on KDE Plasma and SDDM - enables GUI versions of some CLI tools |
| Laptop | Nothing planned atm. Reserved for if I get a NixOS Laptop. |
| Media (Creation) | Turns on media creation tools like Resolve, Blender, Affinity, OBS |
| Media (Extras) | Media utils & tools such as ffmpeg, Handbrake, ndi-tools |
| Media (Viewing) | Turns on various media viewers, like VLC, MPV, Infuse, Calibre |
| Server | Turns on various monitoring utilities |
| Workstation | Turns on productivity apps and useful things like 1Password |
Systems#
| Name | Arch | Class | Description | Profiles |
|---|---|---|---|---|
| Artemis | aarch64 | Darwin | 2021 MacBook Pro M1 Pro 14in | Devel,Graphical,Laptop,Media,Workstation |
| Hypnos | x86_64 | NixOS | Desktop (+Windows 11 dual boot) | Devel,Gaming,Graphical,Media,Workstation |
| Keldeo | x86_64 | NixOS | Netcup RS 4000 G11 | Server |
| nixosvm1 | x86_64 | NixOS | QEMU VM on Hypnos - for testing | n/a |
| tepig | aarch64 | NixOS | Raspberry Pi 4b (4GB) | Server |
| wingull | x86_64 | NixOS | Netcup VPS 250 G11s | Server |
Deploying#
Once deployed, any system can be switched by using just switch from inside the repo.
NixOS (using nixos-anywhere)#
Todo, once I deploy a NixOS system from scratch. Likely going to use nix-anywhere
- Create a new host key in 1Password 'Secrets' Vault called
{{system}} - Host Key(type ed25519) - Add the pubkey to
secrets/secrets.nixand rekey if required. - Prepare the host and any services as required.
- Run
just install {{hostname}} {{ip address}}- after some time, NixOS should be installed.
Darwin#
- Install Lix
- Rebuild using nix-darwin and nh:
sudo nix run nixpkgs#nh -- darwin switch .#{{host}}- Artemis is the only Darwin machine currently.
- Edit
/etc/shellsto add/run/current-system/sw/bin/fishon the last line, then runchsh -s /run/current-system/sw/bin/fish- h/t to https://github.com/uncenter/flake for this line. This confused me for a good half hour.
- Reboot for good measure.
Remote#
Remote deployment doesn't work from Darwin currently, so I use nixosvm1 as a middleman. This job will be moved to Hypnos, once it's up.
In theory, just deploy {{host}} should work.