NixOS and Home Manager both automatically generate documentation using 'nixosOptionsDoc', and now so does hylonix.
I can't find any standard reference for where this documentation should go, so I have created a doc attribute in the flake.
The pipe operator '<|' was added in Nix 2.24 as experimental. In typical
nix community fashion, an eternity has passed, it's still experimental, and
they're still arguing about it. Thus, in order not to burden any users of
this flake, they have been removed.
To get this done quickly a utility function has been added called 'compose'.
It is 'lib.trivial.pipe' written in reverse. This eliminates any bugs and
performance regressions from unnecessary thunk evaluation.
This module should provide similar functionality to the firefox module in
home-manager. Some notable differences between the two include:
* home-manager configures a single browser. This means that any configuration
that cannot be done on a per-profile basis is shared between all
profiles. This module configures a new copy of the browser for every profile,
ensuring that *all* configuration can be on a per-profile basis.
This might be seen as insanity in a regular distro, but in NixOS this is
trivial to do and requires no extra storage space.
* home-manager modifies files in the user's directory to configure things such
as extensions and search engines. This module avoids that when possible by
pushing configuration into policies and preferences at a browser level.
This is much nicer for impermanence-based systems.