mirror of
https://github.com/nix-community/nixvim.git
synced 2025-07-19 10:14:52 +02:00
55 lines
1.6 KiB
Nix
55 lines
1.6 KiB
Nix
|
{
|
||
|
pkgs,
|
||
|
config,
|
||
|
lib,
|
||
|
...
|
||
|
} @ args:
|
||
|
with lib; let
|
||
|
cfg = config.colorschemes.rose-pine;
|
||
|
helpers = import ../helpers.nix args;
|
||
|
in {
|
||
|
options = {
|
||
|
colorschemes.rose-pine = {
|
||
|
enable = mkEnableOption "rose-pine";
|
||
|
|
||
|
package = helpers.mkPackageOption "rose-pine" pkgs.vimPlugins.rose-pine;
|
||
|
|
||
|
style = helpers.defaultNullOpts.mkEnumFirstDefault ["main" "moon" "dawn"] "Theme style";
|
||
|
|
||
|
boldVerticalSplit = helpers.defaultNullOpts.mkBool false "Bolds vertical splits";
|
||
|
|
||
|
dimInactive = helpers.defaultNullOpts.mkBool false "Dims inactive windows";
|
||
|
|
||
|
disableItalics = helpers.defaultNullOpts.mkBool false "Disables italics";
|
||
|
|
||
|
groups = helpers.mkNullOrOption types.attrs "rose-pine highlight groups";
|
||
|
|
||
|
highlightGroups = helpers.mkNullOrOption types.attrs "Custom highlight groups";
|
||
|
|
||
|
transparentBackground = helpers.defaultNullOpts.mkBool false "Disable setting background";
|
||
|
|
||
|
transparentFloat = helpers.defaultNullOpts.mkBool false "Disable setting background for floating windows";
|
||
|
};
|
||
|
};
|
||
|
|
||
|
config = mkIf cfg.enable {
|
||
|
colorscheme = "rose-pine";
|
||
|
extraPlugins = [cfg.package];
|
||
|
options = {termguicolors = true;};
|
||
|
extraConfigLuaPre = let
|
||
|
setupOptions = with cfg; {
|
||
|
inherit groups;
|
||
|
dark_variant = style;
|
||
|
bold_vert_split = boldVerticalSplit;
|
||
|
disable_background = transparentBackground;
|
||
|
disable_float_background = transparentFloat;
|
||
|
disable_italics = disableItalics;
|
||
|
dim_nc_background = dimInactive;
|
||
|
highlight_groups = highlightGroups;
|
||
|
};
|
||
|
in ''
|
||
|
require("rose-pine").setup(${helpers.toLuaObject setupOptions})
|
||
|
'';
|
||
|
};
|
||
|
}
|