-
Notifications
You must be signed in to change notification settings - Fork 90
Milestone
Description
By per-profile configuration, I'm referring to options like
catppuccin.vscode.profiles.<name>.enablecatppuccin.{firefox,librewolf,floorp}.profiles.<name>.enablecatppuccin.thunderbird.profile
Currently, these take three approaches (respectively):
- Per-profile configuration
- There are
catppuccinoptions mapping to each profile managed by the parent module - Each of these options respect the global
catppuccin.enableoption by default
- There are
- Per-port + per-profile configuration
- There are root
enable,flavor, etc.catppuccinoptions for the port, andprofiles.<name>options that map to each profile managed by the parent module (catppuccin.firefox) - The port's
enableoption (i.e.,catppuccin.firefox.enable) respects the globalcatppuccin.enable - Each profile's
enableoption respects the portsenableoption - This is a bit confusing IMO, as now uses need to be concerned over both the "global"
catppuccinenable, as well as the per-portcatppuccin.<port>.enableoption in order to determine the default ofcatppuccin.<port>.profiles.<name>.enable - This is the most complicated to implement
- There are root
- Single-profile configuration
- There is a single
enableoption like regular ports, but it's accompanied by aprofileoption mapping to a single profile managed by the parent module (programs.thunderbird) - The
enableoption respects the globalcatppuccin.enable, per usual - This is probably the worst case scenario for parent modules that support per-profile configuration, as we're limited to one
- It's the easiest to implement
- There is a single
I think most options should follow the first approach, to be consistent with the upstream home-manager/NixOS modules and have APIs that are simple to understand/implement. Exceptions can of course be made for parent modules that have different behavior, but we'll cross that bridge if/when we get there
So here are some PRs that progress towards that. And feel free to leave feedback!
isabelroses and Smona