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;