11.stylix/modules/nixvim/nixvim.nix
NAHO 6858d08ed0
treewide: add soft deprecation dates (#506)
Add soft deprecation dates to guide the hard deprecation transitions.

Fixes: 3567250ba0 ("Properly warn users that stylix.palette.* has been removed")
Fixes: 94aa0fc0fb ("nixvim: rename transparency options to camelCase (#497)")
2024-08-16 19:54:29 +01:00

55 lines
1.7 KiB
Nix

{
config,
lib,
options,
...
}: {
options.stylix.targets.nixvim = {
enable =
config.lib.stylix.mkEnableTarget "nixvim" true;
transparentBackground = {
main = lib.mkEnableOption "background transparency for the main NeoVim window";
signColumn = lib.mkEnableOption "background transparency for the NeoVim sign column";
};
};
imports = [
# Added: 2024-08-06
(lib.mkRenamedOptionModule
[ "stylix" "targets" "nixvim" "transparent_bg" "main" ]
[ "stylix" "targets" "nixvim" "transparentBackground" "main" ])
# Added: 2024-08-06
(lib.mkRenamedOptionModule
[ "stylix" "targets" "nixvim" "transparent_bg" "sign_column" ]
[ "stylix" "targets" "nixvim" "transparentBackground" "signColumn" ])
];
config = lib.mkIf (config.stylix.enable && config.stylix.targets.nixvim.enable && (config.programs ? nixvim)) (
lib.optionalAttrs (builtins.hasAttr "nixvim" options.programs) {
programs.nixvim = {
colorschemes.base16 = {
colorscheme = {
inherit (config.lib.stylix.colors.withHashtag)
base00 base01 base02 base03 base04 base05 base06 base07
base08 base09 base0A base0B base0C base0D base0E base0F;
};
enable = true;
};
highlight = let
cfg = config.stylix.targets.nixvim;
transparent = {
bg = "none";
ctermbg = "none";
};
in {
Normal = lib.mkIf cfg.transparentBackground.main transparent;
NonText = lib.mkIf cfg.transparentBackground.main transparent;
SignColumn = lib.mkIf cfg.transparentBackground.signColumn transparent;
};
};
}
);
}