Please let me know if you see anything dubious or that can be improved.
This is a flake-based system configuration for my NixOS devices, with system-wide settings being setup through NixOS modules and personal/user settings being configured through the NixOS home-manager module.
The basic structure is:
config
are random configuration files that are used in nix modulesdev-shell
has my default haskell setuphome-manager
has the HM modules and device configurationssystem
has the NixOS modules and device configurations
You will probably want to pick one of my devices as an example:
thelxinoe
is my desktopjanus
andaiode
are my laptopsfractal
is my headless home serverthanatos
is my phone
sudo nixos-rebuild switch --flake .#newname
If you want to update the flake pins, you can run nix flake update
.
Neovim: ./modules/home-manager/programs/editors/neovim.nix
(*)
Emacs: ./modules/home-manager/programs/editors/emacs.nix
and ./config/init.el
Helix: ./modules/home-manager/programs/editors/helix.nix
For age keys
nix-shell -p ssh-to-age
cat public_ed25519 | ssh-to-age # use this as the public key in the sops file
cat private_ed25519 | ssh-to-age -private-key # put this in ~/.config/sops/age/keys.txt