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
(cherry picked from commit dfc859f54d)
Rename mkTarget's 'configElements' argument to 'config' and
'extraOptions' to 'options' to provide a more transparent interface with
the underlying Nixpkgs module system.
(cherry picked from commit 16df6b8448)
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
The existing solution does not work on macOS for some reason.
Reviewed-by: Daniel Thwaites <danthwaites30@btinternet.com>
Reviewed-by: NAHO <90870942+trueNAHO@users.noreply.github.com>
If the size is expressed as a string, Emacs calls bloody murder:
invalid font property (:size . "14.000000")
Fixes: 35233f9296 ("emacs: explicitly set font size (#553)")
Reviewed-by: Jez Cope <jezcope@users.noreply.github.com>
Approved-by: NAHO <90870942+trueNAHO@users.noreply.github.com>
The emacs module currently doesn't set the font size, only the colours
and font family. This PR sets it to `sizes.terminal` (taking a lead from
the `guifont` setting in the `vim` module) using `font-spec`, which is a
more flexible way to specify fonts in elisp. To indicate the size is
points it needs to be a floating point value.
Reviewed-by: NAHO <90870942+trueNAHO@users.noreply.github.com>
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>