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>
27 lines
874 B
Nix
27 lines
874 B
Nix
{ pkgs, config, lib, ... }:
|
|
|
|
let
|
|
theme = config.lib.stylix.colors {
|
|
templateRepo = config.lib.stylix.templates.base16-helix;
|
|
};
|
|
|
|
# Removing the background exposes transparency from the terminal. The
|
|
# background might be helpful if the terminal isn't themed, so we only
|
|
# do this if transparency is actually enabled.
|
|
transparentTheme = pkgs.runCommandLocal "helix-transparent.toml" {} ''
|
|
sed 's/,\? bg = "base00"//g' <${theme} >$out
|
|
'';
|
|
|
|
in {
|
|
options.stylix.targets.helix.enable =
|
|
config.lib.stylix.mkEnableTarget "Helix" true;
|
|
|
|
config = lib.mkIf (config.stylix.enable && config.stylix.targets.helix.enable && config.programs.helix.enable) {
|
|
programs.helix.settings.theme = "stylix";
|
|
|
|
xdg.configFile."helix/themes/stylix.toml".source =
|
|
if config.stylix.opacity.terminal == 1.0
|
|
then theme
|
|
else transparentTheme;
|
|
};
|
|
}
|