dunst module

main
Zynh Ludwig 2024-07-01 18:05:07 -07:00
parent 0e0b28fbb1
commit 797f33bf5f
4 changed files with 137 additions and 10 deletions

View File

@ -13,6 +13,7 @@
./projects.nix
./easyeffects.nix
./lazygit.nix
./dunst.nix
];
nixpkgs.config.allowUnfree = true;

23
home/modules/dunst.nix Normal file
View File

@ -0,0 +1,23 @@
{ lib, pkgs, config, inputs, ... }:
let
cfg = config.snowhawk.dunst;
in
{
options.snowhawk.dunst = {
enable = lib.mkEnableOption "lazygit";
};
config = lib.mkIf cfg.enable {
services.dunst = {
enable = true;
iconTheme = {
name = "rose-pine";
package = pkgs.rose-pine-icon-theme;
};
settings = import ./util/rose-pine-dunst.nix { inherit lib; theme = "default"; };
};
# xdg.configFile."dunst/dunstrc.d/50-theme.conf".source = inputs.dunst-theme.outPath + "/rose-pine.conf";
};
}

View File

@ -0,0 +1,112 @@
{ 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 = "#f6c177";
};
};
moon = {
global = {
background = "#393552";
foreground = "#e0def4";
};
urgency_low = {
background = "#393955";
highlight = "#3e8fb0";
};
urgency_normal = {
background = "#443c53";
highlight = "#f6c177";
};
urgency_critical = {
background = "#433754";
highlight = "#eb6f92";
};
};
dawn = {
global = {
background = "#f2e9e1";
foreground = "#393552";
};
urgency_low = {
background = "#e7e0da";
highlight = "#286983";
};
urgency_normal = {
background = "#3e8fb0";
highlight = "#ea9d34";
};
urgency_critical = {
background = "#ede0d9";
highlight = "#b4637a";
};
};
};
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";
format = "<b><span foreground='${highlight}'>%s</span></b>\n%b";
};
urgency_normal = rec {
inherit (selectedConfig.urgency_normal) background highlight;
frame_color = highlight;
default_icon = "dialog-warning";
format = "<b><span foreground='${highlight}'>%s</span></b>\n%b";
};
urgency_critical = rec {
inherit (selectedConfig.urgency_critical) background highlight;
frame_color = highlight;
default_icon = "dialog-error";
format = "<b><span foreground='${highlight}'>%s</span></b>\n%b";
};
}

View File

@ -13,19 +13,10 @@
snowhawk.theme.enable = true;
snowhawk.projects.enable = true;
snowhawk.lazygit.enable = true;
snowhawk.dunst.enable = true;
xsession.numlock.enable = true;
services.dunst = {
enable = true;
iconTheme = {
name = "rose-pine";
package = pkgs.rose-pine-icon-theme;
};
};
xdg.configFile."dunst/dunstrc.d/50-theme.conf".source = inputs.dunst-theme.outPath + "/rose-pine.conf";
services.unclutter.enable = true;