CrOS/README.md
TheWanderingCrow 4917cfc1eb updates
2025-05-20 11:45:17 -04:00

57 lines
3 KiB
Markdown

# CrOS (Crow's NixOS Configuration Repo)
## Directory Structure
- `flake.nix` - Entrypoint for hosts and user home configurations. Also exposes
a devshell for manual bootstrapping tasks (`nix develop` or `nix-shell`).
- `hosts` - NixOS configurations accessible via
`sudo nixos-rebuild switch --flake .#<host>`.
- `common` - Shared configurations consumed by the machine specific ones.
- `core` - Configurations present across all hosts. This is a hard rule! If
something isn't core, it is optional.
- `disks` - Declarative disk partition and format specifications via disko.
- `optional` - Optional configurations present across more than one host.
- `users` - Host level user configurations present across at least one host.
- `<user>/keys` - Public keys for the user that are symlinked to ~/.ssh
- `dariwn` - machine specific configurations for darwin-based hosts
- Currently not using any darwin hosts
- `nixos` - machine specific configurations for NixOS-based hosts
- `Parzival` - Primary Box - Ryzen 5 7600 - 32GB DDR5 - RX 7800 XT
- `home/<user>` - Home-manager configurations, built automatically during host
rebuilds.
- `common` - Shared home-manager configurations consumed the user's machine
specific ones.
- `core` - Home-manager configurations present for user across all machines.
This is a hard rule! If something isn't core, it is optional.
- `optional` - Optional home-manager configurations that can be added for
specific machines. These can be added by category (e.g. options/media) or
individually (e.g. options/media/vlc.nix) as needed. The home-manager core
and options are defined in host-specific .nix files housed in
`home/<user>`.
- `lib` - Custom library used throughout the nix-config to make import paths
more readable. Accessible via `lib.custom`.
- Currently am not extending lib.
- `modules` - Custom modules to enable special functionality and options.
- `common` - Custom modules that will work on either nixos or dariwn but that
aren't specific to home-manager
- `darwin` - Custom modules specific to dariwn-based hosts
- `home-manager` - Custom modules to home-manager
- `nixos` - Custom modules specific to nixos-based hosts
- `nixos-installer` - A stripped down version of the main nix-config flake used
exclusively during installation of NixOS and nix-config on hosts.
- `overlays` - Custom modifications to upstream packages.
- Currently not using overlays.
- `pkgs` - Custom packages meant to be shared or upstreamed.
- `common` - Custom packages that will work on either nixos or dariwn
- `darwin` - Custom packages specific to dariwn-based hosts
- `nixos` - Custom packages specific to nixos-based hosts
- `devshells` - Custom development shells and environments
# Credits
Inspired by many others, but especially:
- https://github.com/EmergentMind/
- https://github.com/vimjoyer/
- https://github.com/Misterio77/nix-starter-configs
- https://github.com/numtide/blueprint