The three main parts of my config are the `home-manager/`, `hosts/`, and `packages/` folders. In addition to these, I also have a `secrets.nix` file which needs to be populated with secrets as structured in `secrets.example.nix`. Soon, I will have a way to export and import this file to/from a bitwarden vault, for backup purposes.
This folder handles everything user-scope related, including most of my installed packages. I try and keep most configuration isolated to the user scope for simplicity and isolation. The main entrypoint for this configuration is in `home-manager/`, but all the real configuration is located in `home-manager/modules` for organizational purposes. Packages installed in the user scope are located in `home-manager/modules/packages.nix`, and everything else is largely configuration for those programs. This also contains KDE Plasma configuration using the https://github.com/nix-community/plasma-manager module for home-manager, to configure the desktop environment and some associated KDE programs - this is largely mixed with the other home-manager options, that might change soon.
### Hosts
This folder contains sub-folders for each of my NixOS hosts, of which there is only one for now (my laptop). Each has a `default.nix` entrypoint and the rest of the configuration is kept in a `modules` folder, just like the home-manager configuration. This isn't yet abstracted and easily re-usable for new hosts (I have no need for it given I only have one NixOS install), but might be in the future.
### Packages
This folder contains all of my personally-made nix packages. This is mainly just packages I can't seem to find on the interwebs, like some themes. Theoretically they could be used by someone else, but I haven't quite made my config modular yet, so don't try.