# 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](https://github.com/nix-community/nixos-anywhere) 1. Create a new host key in 1Password 'Secrets' Vault called `{{system}} - Host Key` (type ed25519) 2. Add the pubkey to `secrets/secrets.nix` and rekey if required. 3. Prepare the host and any services as required. 4. Run `just install {{hostname}} {{ip address}}` - after some time, NixOS should be installed. ### Darwin 1. Install [Lix](https://lix.systems/install) 2. Rebuild using nix-darwin and nh: `sudo nix run nixpkgs#nh -- darwin switch .#{{host}}` - Artemis is the only Darwin machine currently. 3. Edit `/etc/shells` to add `/run/current-system/sw/bin/fish` on the last line, then run `chsh -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. 4. 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.