- Introduced Copilot instructions for better project understanding. - Updated flake.lock with new dependency revisions and hashes. - Modified zen.nix to include tracking protection and native messaging hosts. - Added godot.nix for Godot language support in VSCode. - Enhanced kde.nix with additional system packages and session variables. - Created thunderbolt.nix to enable Thunderbolt services. - Updated Bellerophon default.nix to include thunderbolt.nix. - Adjusted hardware-configuration.nix to include new kernel modules and parameters.
2.8 KiB
2.8 KiB
Copilot Instructions for EmergentMind's Nix-Config
Project Overview
- This is a modular, flake-based NixOS configuration system, designed for multi-host, multi-user, and reproducible setups.
- Major directories:
hosts/: Per-host NixOS configs (e.g.,hosts/nixos/Bellerophon/).home/: Per-user Home Manager configs.modules/: Reusable NixOS and Home Manager modules, auto-imported vialib.custom.scanPaths.overlays/,pkgs/: Custom packages and overlays.nixos-installer/: Standalone flake for bootstrapping new hosts, with its own README and workflows.docs/: Project documentation, including secrets management.scripts/: Helper scripts for bootstrap, rebuild, sops, etc.
Key Patterns & Conventions
- Imports: Use
lib.custom.relativeToRootandlib.custom.scanPathsfor DRY, recursive module imports. - Host/Module Structure: Each host and user has a directory with a
default.nixas entrypoint. Common/optional configs are split for clarity. - Disk Layout: Disk setup is handled by
diskomodules, with per-host overrides for device and swap. - Secrets: Secrets are managed via a private
nix-secretsrepo and sops-nix. Seedocs/secretsmgmt.mdandnixos-installer/README.mdfor details. - VSCode/Language Support: Language-specific VSCode configs live in
home/panotaka/common/optional/coding/vscode/languages/and are imported via the main VSCode module.
Developer Workflows
- Build & Rebuild: Use
just rebuild(runs pre/post hooks, seejustfile). For full checks:just rebuild-fullorjust check. - ISO Generation:
just isobuilds a custom NixOS installer ISO. - Secrets: Use
just rekey,just sops-add-creation-rules, and related commands for sops/age key management. - Sync/Deploy: Use
just syncandjust build-hostfor remote deployment. - Testing: Tests live in
tests/and usebats.
Integration Points
- External: Relies on
nix-secrets(private), sops-nix, disko, stylix, nix4vscode, and nixos-hardware modules. - Cross-Component: Host configs import common modules and optional features via mapped imports. Home Manager and NixOS modules are kept separate but coordinated.
Examples
- To add a new host: copy an existing host dir in
hosts/nixos/, update disk and user settings, and add secrets as pernixos-installer/README.md. - To add a new language to VSCode: add a
.nixfile tovscode/languages/and import it in the main VSCode module. - To update secrets: run
just rekeyand follow the documented workflow.
References
- See
README.md,nixos-installer/README.md, anddocs/secretsmgmt.mdfor deep dives on architecture and workflows. - For module patterns, see
modules/andhosts/common/core/.
If you are unsure about a workflow or pattern, check the referenced docs or ask for clarification in your PR.