A flake that is expanding to encompass all dotfiles and system configs across linux/darwin hosts including wsl.
The ultimate goal is to manage the entire system with a flake, but also have the flake be agnostic to the system type. In other words, the flake should work on NixOS, MacOS/darwin, regular linux distros, and WSL (whether nixos or other).
- For NixOS based and nix-darwin, we will use the
nixosmodule system to configure the system as well as home-manager for packages - For non-nixos or nix-darwin, we will use only the
home-managermodules to configure the system packages
nixos/includes direct nixos configurationshosts/includes host setups that call modules and home-manager configurations based on the hostcustompkgs/includes my own custom derivations for things that aren't in nixpkgsconfig/includes dotfiles that are managed through nixos configuration directly
You can build a specific host with
sudo nixos-rebuild switch --flake .#hostnamefor nixos isolated configsudo nixos-rebuild switch --flake .#user@hostnamefor nixos configs + home-managerhome-manager switch --flake .#user@hostnamefor just home-manager packages
The flake.nix defines all of the configurations and what modules they call.
Some parts of the flake assume access to files that are suffixed with .key. These assume you have been given access via git-crypt.
To add a new device
- Generate a gpg key
- Give the public key to the device
- git-crypt add-gpg-user YOUR_GPG_KEY_ID
Then on new device, close and git-crypt unlock