No description
- Nix 81.9%
- Shell 13.8%
- Go 4.3%
| assets/backgrounds | ||
| hosts | ||
| modules | ||
| scripts | ||
| tools/nixctl | ||
| .gitignore | ||
| FILE_PATHS.md | ||
| flake.lock | ||
| flake.nix | ||
| README.md | ||
Nix Config
Unified NixOS flake with host-specific entry points in hosts/ and reusable logic in modules/.
Quick map
flake.nixwires all hosts, shared NixOS modules, and Home Manager profiles.hosts/<host>/default.nixcontains machine-specific settings only.hosts/<host>/hardware.nixcontains generated hardware config.modules/nixos/common/*contains baseline shared NixOS defaults.modules/nixos/tito/*contains Tito-specific NixOS modules.modules/nixos/alakazam/*contains Alakazam-specific NixOS modules.modules/nixos/abra/*contains Abra-specific NixOS modules.modules/home-manager/common/*contains shared Home Manager modules.modules/home-manager/tito/*,modules/home-manager/alakazam/*, andmodules/home-manager/abra/*contain profile-specific HM config.assets/stores shared static files (wallpaper),scripts/stores helper scripts.
Shared NixOS defaults
Defined in modules/nixos/common/default.nix and imported by both host families:
- Bootloader defaults (
systemd-boot, EFI) inmodules/nixos/common/boot-systemd.nix. - Locale/timezone defaults in
modules/nixos/common/locale.nix. - Nix settings (
flakes, GC, unfree enabled) inmodules/nixos/common/nix.nix. - NetworkManager enabled in
modules/nixos/common/networkmanager.nix. - Base services in
modules/nixos/common/base-services.nix:- printing, tailscale, pipewire, pulseaudio off, bluetooth, graphics, rtkit.
- Shared Nebula lighthouse/static map in
modules/nixos/common/nebula-base.nix.
Host differences at a glance
tito
Entry point: hosts/tito/default.nix
- Desktop/server-style GNOME + XFCE + XRDP setup.
- NVIDIA stack via
modules/nixos/tito/nvidia.nix. - Nebula mesh cert/key and firewall policy via
modules/nixos/tito/nebula.nix. - Bridge config on
br0overenp12s0. - Virtualization-heavy: libvirt + docker + virt-manager.
- Extra AI/remote packages (e.g.
ollama-cuda,llmfit,rustdesk).
alakazam
Entry point: hosts/alakazam/default.nix
- Sway/Wayland-first system profile.
- SDDM + seatd + libinput tuning in
modules/nixos/alakazam/services.nix. - Wayland environment/session variables in
modules/nixos/alakazam/programs.nix. - Nebula mesh cert/key + DNS behavior in
modules/nixos/alakazam/nebula.nix. - Host-specific static DNS/hosts map in
hosts/alakazam/default.nix. - Additional user and package set in
modules/nixos/alakazam/users.nixandmodules/nixos/alakazam/packages.nix.
abra
Entry point: hosts/abra/default.nix
- Cinnamon + LightDM desktop profile in
modules/nixos/abra/desktop.nix. - Multi-user workstation setup (
jaredandsara) inmodules/nixos/abra/users.nix. - Auto-upgrade + podman-focused service config in
modules/nixos/abra/system-services.nix. - Uses common base defaults but overrides tailscale off for this host.
- Includes helper scripts under
scripts/abra/.
Home Manager profiles
Shared (modules/home-manager/common/default.nix)
direnv+nix-direnv.yazi+ shell integration.
Tito profile (modules/home-manager/tito/default.nix)
- Terminal/shell-focused profile (
zsh,bash,zellij,kitty,alacritty). - GNOME keybinding tweaks via
dconf. - Personal package set (
spotify,strawberry,prettier).
Alakazam profile (modules/home-manager/alakazam/default.nix)
- Sway desktop user stack with dedicated modules under
modules/home-manager/alakazam/programs/. - Waybar/Sway/Zed/git configs and Wayland desktop utilities.
Abra profiles (modules/home-manager/abra/jared.nix and modules/home-manager/abra/sara.nix)
- Shared HM base imported from
modules/home-manager/abra/default.nix. - Separate user entrypoints for
jaredandsara. - Includes sway/waybar/git/neovim profile modules under
modules/home-manager/abra/programs/.
Build all hosts
nix build .#nixosConfigurations.tito.config.system.build.toplevel --no-link
nix build .#nixosConfigurations.alakazam.config.system.build.toplevel --no-link
nix build .#nixosConfigurations.abra.config.system.build.toplevel --no-link
Interactive rebuild helper
tools/nixctl/contains a small interactive Go TUI (Charm'shuh) for common operations.- It supports selecting host + action and wraps common Nix commands (
build,switch,test,update,gc). scripts/nixctl.shauto-checks Go and module dependencies before launching.- If
gois missing, it transparently runs withnix shell nixpkgs#go. - Commands execute from the repository flake root automatically.
- Run with:
./scripts/nixctl.sh