feat: apply new module format to notification plugins

This commit is contained in:
NotAShelf 2023-02-27 22:26:31 +03:00
parent d93b005f2c
commit 4d1e7bcbe6
No known key found for this signature in database
GPG key ID: 5B5C8895F28445F1
5 changed files with 83 additions and 35 deletions

View file

@ -1,5 +1,5 @@
_: {
imports = [
./nvim-notify.nix
./nvim-notify
];
}

View file

@ -1,34 +0,0 @@
{
pkgs,
config,
lib,
...
}:
with lib;
with builtins; let
cfg = config.vim.notify.nvim-notify;
in {
options.vim.notify.nvim-notify = {
enable = mkEnableOption "Enable nvim-notify plugin";
};
config = mkIf cfg.enable {
vim.startPlugins = ["nvim-notify"];
vim.luaConfigRC.nvim-notify = nvim.dag.entryAnywhere ''
require('notify').setup {
stages = 'fade_in_slide_out',
timeout = 1000,
background_colour = '#000000',
position = 'top_right',
icons = {
ERROR = '',
WARN = '',
INFO = '',
DEBUG = '',
TRACE = '',
},
}
'';
};
}

View file

@ -0,0 +1,31 @@
{
pkgs,
config,
lib,
...
}:
with lib;
with builtins; let
cfg = config.vim.notify.nvim-notify;
in {
config = mkIf cfg.enable {
vim.startPlugins = ["nvim-notify"];
vim.luaConfigRC.nvim-notify = nvim.dag.entryAnywhere ''
require('notify').setup {
stages = "${cfg.stages}",
timeout = ${toString cfg.timeout},
background_colour = "${cfg.background_colour}",
position = "${cfg.position}",
icons = {
ERROR = "${cfg.icons.ERROR}",
WARN = "${cfg.icons.WARN}",
INFO = "${cfg.icons.INFO}",
DEBUG = "${cfg.icons.DEBUG}",
TRACE = "${cfg.icons.TRACE}",
},
}
'';
};
}

View file

@ -0,0 +1,6 @@
_: {
imports = [
./config.nix
./nvim-notify.nix
];
}

View file

@ -0,0 +1,45 @@
{
pkgs,
config,
lib,
...
}:
with lib;
with builtins; let
cfg = config.vim.notify.nvim-notify;
in {
options.vim.notify.nvim-notify = {
enable = mkEnableOption "Enable nvim-notify plugin";
stages = mkOption {
type = types.enum ["fade_in_slide_out" "fade_in" "slide_out" "none"];
default = "fade_in_slide_out";
description = "The stages of the notification";
};
timeout = mkOption {
type = types.int;
default = 1000;
description = "The timeout of the notification";
};
background_colour = mkOption {
type = types.str;
default = "#000000";
description = "The background colour of the notification";
};
position = mkOption {
type = types.enum ["top_left" "top_right" "bottom_left" "bottom_right"];
default = "top_right";
description = "The position of the notification";
};
icons = mkOption {
type = types.attrsOf types.str;
default = {
ERROR = "";
WARN = "";
INFO = "";
DEBUG = "";
TRACE = "";
};
description = "The icons of the notification";
};
};
}