diff --git a/home/modules/default.nix b/home/modules/default.nix index 434d12e..e50e060 100644 --- a/home/modules/default.nix +++ b/home/modules/default.nix @@ -13,6 +13,7 @@ ./projects.nix ./easyeffects.nix ./lazygit.nix + ./dunst.nix ]; nixpkgs.config.allowUnfree = true; diff --git a/home/modules/dunst.nix b/home/modules/dunst.nix new file mode 100644 index 0000000..3e7a567 --- /dev/null +++ b/home/modules/dunst.nix @@ -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"; + }; +} diff --git a/home/modules/util/rose-pine-dunst.nix b/home/modules/util/rose-pine-dunst.nix new file mode 100644 index 0000000..dcc2888 --- /dev/null +++ b/home/modules/util/rose-pine-dunst.nix @@ -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 = "%s\n%b"; + }; + + urgency_normal = rec { + inherit (selectedConfig.urgency_normal) background highlight; + frame_color = highlight; + default_icon = "dialog-warning"; + format = "%s\n%b"; + }; + + urgency_critical = rec { + inherit (selectedConfig.urgency_critical) background highlight; + frame_color = highlight; + default_icon = "dialog-error"; + format = "%s\n%b"; + }; +} diff --git a/hosts/snowhawk/home.nix b/hosts/snowhawk/home.nix index 32af7da..a3c3dc3 100644 --- a/hosts/snowhawk/home.nix +++ b/hosts/snowhawk/home.nix @@ -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;