configs, scripts, quality of life
Flake-based NixOS and Home Manager configuration for three x86_64-linux machines:
beauregard: Sway workstationhiggins: Hyprland media desktopbarkley: home server
This repository contains everything needed to set up the workstations. Before installing a host, copy its secrets-template.nix to secrets.nix and fill in the required values.
Afterwards, only a single command is needed to install it:
nixos-installflake.nix: inputs, shared host construction, and host outputsmodules/base.nix: policy shared by every hostmodules/home/: shared Home Manager modulesmodules/incus.nix: Incus host configuration used by Barkleymodules/ssh-shutdown.nix: restricted SSH shutdown service used by Higginshosts/<host>/configuration.nix: host-level NixOS entry pointhosts/<host>/home.nix: host-level Home Manager entry pointdotfiles/: data and directly invoked workstation scripts
Each host imports hosts/<host>/secrets.nix. That file is ignored by Git. Start from the matching secrets-template.nix, fill in the required values, and keep the result readable only by its owner:
cp hosts/beauregard/secrets-template.nix hosts/beauregard/secrets.nix
chmod 600 hosts/beauregard/secrets.nixRun commands from the repository root:
# Format Nix sources
nix fmt --no-write-lock-file
# Evaluate one host without activating it
nix eval --no-write-lock-file --impure --raw \
path:.#nixosConfigurations.beauregard.config.system.build.toplevel.drvPath
# Build one host without activating it
nix build --no-write-lock-file --impure \
path:.#nixosConfigurations.beauregard.config.system.build.toplevelReplace beauregard with barkley or higgins as needed. Evaluation requires the selected host's ignored hardware and secret files.
sudo nixos-rebuild switch --impure --flake path:.#beauregardBeauregard's Zsh configuration also provides switch, switch-barkley, and switch-higgins aliases. The remote aliases build on and deploy directly to their target machines.