From 9af07bedff78dee5e74371f850c344d87d211f26 Mon Sep 17 00:00:00 2001 From: Jelle Spreeuwenberg Date: Fri, 17 Apr 2026 00:27:22 +0200 Subject: [PATCH] Initial commit --- .codex | 0 .gitignore | 4 + AGENTS.md | 39 + NOTES.md | 13 + SESSION_LOG.md | 152 ++++ TASKS.md | 188 +++++ flake.lock | 741 ++++++++++++++++++ flake.nix | 38 + modules/bundles.nix | 35 + modules/defaults.nix | 23 + modules/den.nix | 9 + modules/features/_noctalia-config.nix | 564 +++++++++++++ modules/features/audio.nix | 12 + modules/features/bitwarden.nix | 25 + modules/features/bluetooth.nix | 6 + modules/features/clipboard.nix | 10 + modules/features/dev-tools.nix | 23 + modules/features/email.nix | 84 ++ modules/features/flatpak.nix | 3 + modules/features/fonts.nix | 26 + modules/features/gemini.nix | 15 + modules/features/git.nix | 32 + modules/features/local-apps.nix | 22 + modules/features/mpv.nix | 49 ++ modules/features/neovim/default.nix | 187 +++++ modules/features/neovim/lua-config/init.lua | 9 + .../neovim/lua-config/lua/options.lua | 138 ++++ .../neovim/lua-config/lua/plugins/ai.lua | 72 ++ .../lua-config/lua/plugins/completion.lua | 104 +++ .../neovim/lua-config/lua/plugins/core.lua | 65 ++ .../lua-config/lua/plugins/formatting.lua | 49 ++ .../neovim/lua-config/lua/plugins/lsp.lua | 192 +++++ .../lua-config/lua/plugins/telescope.lua | 101 +++ .../lua-config/lua/plugins/treesitter.lua | 28 + .../neovim/lua-config/lua/plugins/typst.lua | 1 + .../neovim/lua-config/lua/plugins/ui.lua | 81 ++ .../neovim/lua-config/snippets/nix.lua | 91 +++ modules/features/networking.nix | 6 + modules/features/niri.nix | 374 +++++++++ modules/features/nix.nix | 55 ++ modules/features/noctalia.nix | 19 + modules/features/pim.nix | 86 ++ modules/features/pinentry.nix | 7 + modules/features/podman.nix | 10 + modules/features/printing.nix | 14 + modules/features/qbittorrent-client.nix | 19 + modules/features/region-nl.nix | 22 + modules/features/sddm.nix | 17 + modules/features/services/actual.nix | 22 + modules/features/services/caddy.nix | 10 + modules/features/services/deluge.nix | 20 + modules/features/services/gitea.nix | 36 + modules/features/services/openssh.nix | 80 ++ modules/features/services/qbittorrent.nix | 13 + modules/features/services/radicale.nix | 33 + modules/features/services/vaultwarden.nix | 20 + modules/features/shell.nix | 184 +++++ modules/features/sops-password.nix | 14 + modules/features/ssh.nix | 27 + modules/features/steam.nix | 13 + modules/features/syncthing.nix | 56 ++ modules/features/system-base.nix | 10 + modules/features/terminal.nix | 82 ++ modules/features/theme.nix | 54 ++ modules/features/vicinae.nix | 73 ++ modules/features/xdg.nix | 52 ++ modules/hosts/orion/default.nix | 40 + modules/hosts/orion/disk.nix | 63 ++ modules/hosts/orion/hardware.nix | 38 + modules/hosts/polaris/default.nix | 65 ++ modules/hosts/polaris/hardware.nix | 50 ++ modules/hosts/zenith/default.nix | 41 + modules/hosts/zenith/hardware.nix | 46 ++ modules/infra.nix | 96 +++ modules/schema.nix | 135 ++++ modules/secrets/.sops.yaml | 9 + modules/secrets/secrets.yaml | 32 + modules/secrets/sops.nix | 81 ++ modules/users/ergon.nix | 19 + modules/users/kiri.nix | 15 + 80 files changed, 5389 insertions(+) create mode 100644 .codex create mode 100644 .gitignore create mode 100644 AGENTS.md create mode 100644 NOTES.md create mode 100644 SESSION_LOG.md create mode 100644 TASKS.md create mode 100644 flake.lock create mode 100644 flake.nix create mode 100644 modules/bundles.nix create mode 100644 modules/defaults.nix create mode 100644 modules/den.nix create mode 100644 modules/features/_noctalia-config.nix create mode 100644 modules/features/audio.nix create mode 100644 modules/features/bitwarden.nix create mode 100644 modules/features/bluetooth.nix create mode 100644 modules/features/clipboard.nix create mode 100644 modules/features/dev-tools.nix create mode 100644 modules/features/email.nix create mode 100644 modules/features/flatpak.nix create mode 100644 modules/features/fonts.nix create mode 100644 modules/features/gemini.nix create mode 100644 modules/features/git.nix create mode 100644 modules/features/local-apps.nix create mode 100644 modules/features/mpv.nix create mode 100644 modules/features/neovim/default.nix create mode 100644 modules/features/neovim/lua-config/init.lua create mode 100644 modules/features/neovim/lua-config/lua/options.lua create mode 100644 modules/features/neovim/lua-config/lua/plugins/ai.lua create mode 100644 modules/features/neovim/lua-config/lua/plugins/completion.lua create mode 100644 modules/features/neovim/lua-config/lua/plugins/core.lua create mode 100644 modules/features/neovim/lua-config/lua/plugins/formatting.lua create mode 100644 modules/features/neovim/lua-config/lua/plugins/lsp.lua create mode 100644 modules/features/neovim/lua-config/lua/plugins/telescope.lua create mode 100644 modules/features/neovim/lua-config/lua/plugins/treesitter.lua create mode 100644 modules/features/neovim/lua-config/lua/plugins/typst.lua create mode 100644 modules/features/neovim/lua-config/lua/plugins/ui.lua create mode 100644 modules/features/neovim/lua-config/snippets/nix.lua create mode 100644 modules/features/networking.nix create mode 100644 modules/features/niri.nix create mode 100644 modules/features/nix.nix create mode 100644 modules/features/noctalia.nix create mode 100644 modules/features/pim.nix create mode 100644 modules/features/pinentry.nix create mode 100644 modules/features/podman.nix create mode 100644 modules/features/printing.nix create mode 100644 modules/features/qbittorrent-client.nix create mode 100644 modules/features/region-nl.nix create mode 100644 modules/features/sddm.nix create mode 100644 modules/features/services/actual.nix create mode 100644 modules/features/services/caddy.nix create mode 100644 modules/features/services/deluge.nix create mode 100644 modules/features/services/gitea.nix create mode 100644 modules/features/services/openssh.nix create mode 100644 modules/features/services/qbittorrent.nix create mode 100644 modules/features/services/radicale.nix create mode 100644 modules/features/services/vaultwarden.nix create mode 100644 modules/features/shell.nix create mode 100644 modules/features/sops-password.nix create mode 100644 modules/features/ssh.nix create mode 100644 modules/features/steam.nix create mode 100644 modules/features/syncthing.nix create mode 100644 modules/features/system-base.nix create mode 100644 modules/features/terminal.nix create mode 100644 modules/features/theme.nix create mode 100644 modules/features/vicinae.nix create mode 100644 modules/features/xdg.nix create mode 100644 modules/hosts/orion/default.nix create mode 100644 modules/hosts/orion/disk.nix create mode 100644 modules/hosts/orion/hardware.nix create mode 100644 modules/hosts/polaris/default.nix create mode 100644 modules/hosts/polaris/hardware.nix create mode 100644 modules/hosts/zenith/default.nix create mode 100644 modules/hosts/zenith/hardware.nix create mode 100644 modules/infra.nix create mode 100644 modules/schema.nix create mode 100644 modules/secrets/.sops.yaml create mode 100644 modules/secrets/secrets.yaml create mode 100644 modules/secrets/sops.nix create mode 100644 modules/users/ergon.nix create mode 100644 modules/users/kiri.nix diff --git a/.codex b/.codex new file mode 100644 index 0000000..e69de29 diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..2e0bac8 --- /dev/null +++ b/.gitignore @@ -0,0 +1,4 @@ +.agents/ +.claude/ +.codex/ +.opencode/ diff --git a/AGENTS.md b/AGENTS.md new file mode 100644 index 0000000..d7d4353 --- /dev/null +++ b/AGENTS.md @@ -0,0 +1,39 @@ +# Repository Guidelines + +## Project Structure & Module Organization +This repository is a Den-based NixOS flake. `flake.nix` evaluates `./modules` through `import-tree`, so normal `.nix` files under `modules/` are auto-imported. + +- `modules/hosts/` contains host-specific composition and hardware data for `polaris` and `orion`. +- `modules/features/` contains aspects such as desktop, shell, services, and Neovim. +- `modules/profiles/` holds higher-level bundles such as `workstation.nix`. +- `modules/users/` defines user metadata and per-user behavior. +- `modules/secrets/` wires `sops-nix` and stores the encrypted `secrets.yaml`. +- `.agents/den/` is a local checkout of Den with source, docs, and examples. + +Keep host files thin. Shared behavior belongs in `modules/features/` or `modules/profiles/`. +When Den behavior is unclear, read `.agents/den/docs/`, `.agents/den/modules/`, and `.agents/den/templates/ci/` before guessing. + +## Build, Test, and Development Commands +Run commands from the repository root. + +- `nix build .#nixosConfigurations.polaris.config.system.build.toplevel --show-trace`: evaluate and build the Polaris system. +- `nix build .#nixosConfigurations.orion.config.system.build.toplevel --show-trace`: evaluate and build the Orion system. +- `nixos-rebuild build --flake .#`: use the standard rebuild path without activating it. +- `nix fmt`: format Nix files using the flake-provided formatter. +- `nix eval .#nixosConfigurations..config.