nixos/home/modules/util/rose-pine-dunst.nix

78 lines
2.2 KiB
Nix
Raw Normal View History

2024-07-02 01:05:07 +00:00
{ lib, theme ? "default" }:
let
configs = {
default = {
global = { background = "#26233a"; foreground = "#e0def4"; };
urgency_low = { background = "#26273d"; highlight = "#31748f"; };
urgency_normal = { background = "#362e3c"; highlight = "#f6c177"; };
urgency_critical = { background = "#362e3c"; highlight = "#eb6f92"; };
2024-07-02 01:05:07 +00:00
};
moon = {
global = { background = "#393552"; foreground = "#e0def4"; };
urgency_low = { background = "#393955"; highlight = "#3e8fb0"; };
urgency_normal = { background = "#443c53"; highlight = "#f6c177"; };
urgency_critical = { background = "#433754"; highlight = "#eb6f92"; };
2024-07-02 01:05:07 +00:00
};
dawn = {
global = { background = "#f2e9e1"; foreground = "#393552"; };
urgency_low = { background = "#e7e0da"; highlight = "#286983"; };
urgency_normal = { background = "#3e8fb0"; highlight = "#ea9d34"; };
urgency_critical = { background = "#ede0d9"; highlight = "#b4637a"; };
2024-07-02 01:05:07 +00:00
};
};
2024-07-02 05:54:12 +00:00
formatWithColor = color: "<b><span foreground='${color}'>%s</span></b>\n%b";
2024-07-02 01:05:07 +00:00
getConfig = name:
if name == "moon" then configs.moon
else if name == "dawn" then configs.dawn
else configs.default;
selectedConfig = getConfig theme;
in
{
global = {
width = 400;
offset = "5x5";
progress_bar_min_width = 380;
progress_bar_max_width = 380;
progress_bar_corner_radius = 2;
padding = 10;
horizontal_padding = 10;
frame_width = 1;
gap_size = 3;
font = "Monospace 14";
icon_theme = "rose-pine-icons";
enable_recursive_icon_lookup = true;
corner_radius = 2;
inherit (selectedConfig.global) background foreground;
};
urgency_low = rec {
inherit (selectedConfig.urgency_low) background highlight;
frame_color = highlight;
default_icon = "dialog-information";
2024-07-02 05:54:12 +00:00
format = formatWithColor highlight;
2024-07-02 01:05:07 +00:00
};
urgency_normal = rec {
inherit (selectedConfig.urgency_normal) background highlight;
frame_color = highlight;
default_icon = "dialog-warning";
2024-07-02 05:54:12 +00:00
format = formatWithColor highlight;
2024-07-02 01:05:07 +00:00
};
urgency_critical = rec {
inherit (selectedConfig.urgency_critical) background highlight;
frame_color = highlight;
default_icon = "dialog-error";
2024-07-02 05:54:12 +00:00
format = formatWithColor highlight;
2024-07-02 01:05:07 +00:00
};
}