README: use consistent tab width (2 spaces)

This commit is contained in:
2024-02-14 05:18:43 +00:00
parent c0b03950dc
commit e599724811

View File

@@ -35,37 +35,37 @@ or follow the instructions [here][NUR] to use it via the Nix User Repositories.
## Layout ## Layout
- `doc/` - `doc/`
- instructions for tasks i find myself doing semi-occasionally in this repo. - instructions for tasks i find myself doing semi-occasionally in this repo.
- `hosts/` - `hosts/`
- the bulk of config which isn't factored with external use in mind. - the bulk of config which isn't factored with external use in mind.
- that is, if you were to add this repo to a flake.nix for your own use, - that is, if you were to add this repo to a flake.nix for your own use,
you won't likely be depending on anything in this directory. you won't likely be depending on anything in this directory.
- `integrations/` - `integrations/`
- code intended for consumption by external tools (e.g. the Nix User Repos) - code intended for consumption by external tools (e.g. the Nix User Repos)
- `modules/` - `modules/`
- config which is gated behind `enable` flags, in similar style to nixpkgs' - config which is gated behind `enable` flags, in similar style to nixpkgs'
`nixos/` directory. `nixos/` directory.
- if you depend on this repo, it's most likely for something in this directory. - if you depend on this repo, it's most likely for something in this directory.
- `nixpatches/` - `nixpatches/`
- literally, diffs i apply atop upstream nixpkgs before performing further eval. - literally, diffs i apply atop upstream nixpkgs before performing further eval.
- `overlays/` - `overlays/`
- exposed via the `overlays` output in `flake.nix`. - exposed via the `overlays` output in `flake.nix`.
- predominantly a list of `callPackage` directives. - predominantly a list of `callPackage` directives.
- `pkgs/` - `pkgs/`
- derivations for things not yet packaged in nixpkgs. - derivations for things not yet packaged in nixpkgs.
- derivations for things from nixpkgs which i need to `override` for some reason. - derivations for things from nixpkgs which i need to `override` for some reason.
- inline code for wholly custom packages (e.g. `pkgs/additional/sane-scripts/` for CLI tools - inline code for wholly custom packages (e.g. `pkgs/additional/sane-scripts/` for CLI tools
that are highly specific to my setup). that are highly specific to my setup).
- `scripts/` - `scripts/`
- scripts which aren't reachable on a deployed system, but may aid manual deployments - scripts which aren't reachable on a deployed system, but may aid manual deployments
- `secrets/` - `secrets/`
- encrypted keys, API tokens, anything which one or more of my machines needs - encrypted keys, API tokens, anything which one or more of my machines needs
read access to but shouldn't be world-readable. read access to but shouldn't be world-readable.
- not much to see here - not much to see here
- `templates/` - `templates/`
- exposed via the `templates` output in `flake.nix`. - exposed via the `templates` output in `flake.nix`.
- used to instantiate short-lived environments. - used to instantiate short-lived environments.
- used to auto-fill the boiler-plate portions of new packages. - used to auto-fill the boiler-plate portions of new packages.
## Key Points of Interest ## Key Points of Interest
@@ -73,35 +73,35 @@ or follow the instructions [here][NUR] to use it via the Nix User Repositories.
i.e. you might find value in using these in your own config: i.e. you might find value in using these in your own config:
- `modules/fs/` - `modules/fs/`
- use this to statically define leafs and nodes anywhere in the filesystem, - use this to statically define leafs and nodes anywhere in the filesystem,
not just inside `/nix/store`. not just inside `/nix/store`.
- e.g. specify that `/var/www` should be: - e.g. specify that `/var/www` should be:
- owned by a specific user/group - owned by a specific user/group
- set to a specific mode - set to a specific mode
- symlinked to some other path - symlinked to some other path
- populated with some statically-defined data - populated with some statically-defined data
- populated according to some script - populated according to some script
- created as a dependency of some service (e.g. `nginx`) - created as a dependency of some service (e.g. `nginx`)
- values defined here are applied neither at evaluation time _nor_ at activation time. - values defined here are applied neither at evaluation time _nor_ at activation time.
- rather, they become systemd services. - rather, they become systemd services.
- systemd manages dependencies - systemd manages dependencies
- e.g. link `/var/www -> /mnt/my-drive/www` only _after_ `/mnt/my-drive/www` appears) - e.g. link `/var/www -> /mnt/my-drive/www` only _after_ `/mnt/my-drive/www` appears)
- this is akin to using [Home Manager's][home-manager] file API -- the part which lets you - this is akin to using [Home Manager's][home-manager] file API -- the part which lets you
statically define `~/.config` files -- just with a different philosophy. statically define `~/.config` files -- just with a different philosophy.
- `modules/persist/` - `modules/persist/`
- my alternative to the Impermanence module. - my alternative to the Impermanence module.
- this builds atop `modules/fs/` to achieve things stock impermanence can't: - this builds atop `modules/fs/` to achieve things stock impermanence can't:
- persist things to encrypted storage which is unlocked at login time (pam_mount). - persist things to encrypted storage which is unlocked at login time (pam_mount).
- "persist" cache directories -- to free up RAM -- but auto-wipe them on mount - "persist" cache directories -- to free up RAM -- but auto-wipe them on mount
and encrypt them to ephemeral keys so they're unreadable post shutdown/unmount. and encrypt them to ephemeral keys so they're unreadable post shutdown/unmount.
- `modules/programs/` - `modules/programs/`
- like nixpkgs' `programs` options, but allows both system-wide or per-user deployment. - like nixpkgs' `programs` options, but allows both system-wide or per-user deployment.
- allows `fs` and `persist` config values to be gated behind program deployment: - allows `fs` and `persist` config values to be gated behind program deployment:
- e.g. `/home/<user>/.mozilla/firefox` is persisted only for users who - e.g. `/home/<user>/.mozilla/firefox` is persisted only for users who
`sane.programs.firefox.enableFor.user."<user>" = true;` `sane.programs.firefox.enableFor.user."<user>" = true;`
- `modules/users.nix` - `modules/users.nix`
- convenience layer atop the above modules so that you can just write - convenience layer atop the above modules so that you can just write
`fs.".config/git"` instead of `fs."/home/colin/.config/git"` `fs.".config/git"` instead of `fs."/home/colin/.config/git"`
some things in here could easily find broader use. if you would find benefit in some things in here could easily find broader use. if you would find benefit in
them being factored out of my config, message me and we could work to make that happen. them being factored out of my config, message me and we could work to make that happen.