# nix NixOS dotfiles and configuration for various hosts and users. ## Structure - [`flake.lock`](./flake.lock) and [`flake.nix`](./flake.nix): Core Nix flake files defining the repository's dependencies and entry points. - [`hosts/`](./hosts): All host-specific configurations. - [`common/`](./hosts/common): Shared configuration definitions. - [`system/`](./hosts/common/system): System-level configurations and scripts. - [`configs/`](./hosts/common/system/configs): System configurations applicable to all hosts. - [`scripts/`](./hosts/common/system/scripts): Utility scripts, such as `nix-cleanup`. - [`user/`](./hosts/common/user): Per-user options. - [`configs/`](./hosts/common/user/configs): User configurations, split into: - [`console/`](./hosts/common/user/configs/console): Console-related settings. - [`gui/`](./hosts/common/user/configs/gui): GUI-related settings. - [`scripts/`](./hosts/common/user/scripts): User-specific scripts and utilities. - `/`: Individual host configurations. - `scripts/`: Host-specific scripts. - `secrets/`: Host-specific secrets, such as `machineId`. - `users/`: User-specific settings for the host. - `format.nix`: Disk layout definition using [`disko`](https://github.com/nix-community/disko). - `users//`: Global configurations for individual users that apply across all hosts. This includes secrets (like GPG keys and third-party service passwords), wallpapers, and more. - [`scripts/`](./scripts): Utility scripts for managing the repository. - [`add-host.sh`](./scripts/add-host.sh): Instantiate the keys for a new host configuration. - [`remove-host.sh`](./scripts/remove-host.sh): Remove references to a host. - [`add-user.sh`](./scripts/add-user.sh): Instantiate the keys for a new user configuration. - [`remove-user.sh`](./scripts/remove-user.sh): Remove references to a user. - [`update-keys.sh`](./scripts/update-keys.sh): Update the encryption keys in all relevant files using `sops.yaml` configurations. - [`update.sh`](./scripts/update.sh): Update flake and all git submodules. - [`install.sh`](./scripts/install.sh): Install or repair a selected NixOS host. - [`submodules/`](./submodules): Flake forks used in the repository, such as [`nixpkgs`](https://github.com/NixOS/nixpkgs) and [`home-manager`](https://github.com/nix-community/home-manager). Any `options.nix` files create custom option definitions when present. ## Hosts Below is a table of all hosts, with links to their respective README files, which may provide further details and/or post-installation checklists. | Host | README | |----------|----------------------------------------------------| | `eirene` | [hosts/eirene/README.md](./hosts/eirene/README.md) |