Optionalize mkTarget's 'humanName' and 'name' arguments by inferring
'humanName' from the 'name' attribute in the /modules/<MODULE>/meta.nix
file, and 'name' from the /modules/<NAME>/ directory name.
Inferring the 'humanName' and 'name' arguments ensures consistency and
reduces boilerplate.
The 'humanName' and 'name' arguments are optionalized instead of removed
because complex modules generating target derivations need to
distinguish between them.
Closes: https://github.com/nix-community/stylix/issues/1661
Rename mkTarget's 'configElements' argument to 'config' and
'extraOptions' to 'options' to provide a more transparent interface with
the underlying Nixpkgs module system.
Although qutebrowser is my main browser, I occasionally use LibreWolf
and Tor Browser. Consequently, I am adding myself as a maintainer to
this rather important module.
Link: https://github.com/nix-community/stylix/pull/1442
- Made the descriptions of `colorTheme.enable` and
`firefoxGnomeTheme.enable` specify which Firefox derivative they apply
to, to clarify that these options are specific to each derivative.
- Switched from `mkEnableTarget` to `mkEnableOption`, as these options
are not strictly targets: they enable additional programs. This also
changes the option description slightly.
- Removed the multi-line string as this was adding whitespace where it's
not needed, due to the trailing newline.
Link: https://github.com/danth/stylix/pull/998
Reviewed-by: NAHO <90870942+trueNAHO@users.noreply.github.com>
Add a gnome-theme testbed and extract the profile name in the default
testbed.
Link: https://github.com/danth/stylix/pull/879
Co-authored-by: Daniel Thwaites <danth@danth.me>
Co-authored-by: NAHO <90870942+trueNAHO@users.noreply.github.com>
Reviewed-by: Daniel Thwaites <danth@danth.me>
Reviewed-by: NAHO <90870942+trueNAHO@users.noreply.github.com>
Add the colorTheme.enable option to the Firefox derivatives by
installing the the Firefox Color extension.
This is not enabled by default because writing extension settings
requires manually setting 'extensions.force = true'. [1]
[1]: https://github.com/nix-community/home-manager/pull/6490
Link: https://github.com/danth/stylix/pull/881
Reviewed-by: Daniel Thwaites <danth@danth.me>
Reviewed-by: NAHO <90870942+trueNAHO@users.noreply.github.com>
Tested-by: NAHO <90870942+trueNAHO@users.noreply.github.com>
Extend testbeds with individual GUI applications beyond DEs, offering the
following benefits:
- Preview PRs without changing your real configuration by running:
nix run github:«owner»/«repository»/«branch»#testbed-«application»-«polarity»'
- Unlike local installations, testbeds reset their filesystem between rebuilds,
ensuring each test simulates a fresh installation to identify cases requiring
manual steps for module effectiveness.
- Enhances CI to test that configurations evaluate correctly when a module is
enabled. The extent to which this confirms that the configuration actually
works can vary depending on the upstream implementation of the module.
The application testbeds are currently based on GNOME but could be replaced with
a lightweight compositor like Cage [1] in the future. GNOME was chosen for the
time being due to preconfigured services, such as a secret service [2], which
some applications require.
[1]: https://github.com/cage-kiosk/cage?tab=readme-ov-file#cage-a-wayland-kiosk
[2]: https://specifications.freedesktop.org/secret-service-spec/latest
Add a 'stylix.enable' option to enable or disable all Stylix modules in
order to resolve issues similar to [2].
To align with the default 'lib.mkEnableOption' [1] behavior,
'stylix.enable' defaults to 'false'.
BREAKING CHANGE: Stylix is disabled by default. To enable it, use:
stylix.enable = true;
[1]: https://github.com/NixOS/nixpkgs/blob/23.11/lib/options.nix#L91-L105
[2]: https://github.com/danth/stylix/issues/216
Co-authored-by: Daniel Thwaites <danthwaites30@btinternet.com>
Co-authored-by: Jalil David Salamé Messina <jalil.salame@gmail.com>
Co-authored-by: NAHO <90870942+trueNAHO@users.noreply.github.com>