summary refs log tree commit diff stats
diff options
context:
space:
mode:
-rw-r--r--system/modules/programs/i3.nix1
-rw-r--r--system/modules/programs/window-manager.nix1
-rw-r--r--user/dunst/.config/dunst/dunstrc245
-rw-r--r--user/modules/dunst.nix41
4 files changed, 38 insertions, 250 deletions
diff --git a/system/modules/programs/i3.nix b/system/modules/programs/i3.nix
index 017f393e..b0140cdb 100644
--- a/system/modules/programs/i3.nix
+++ b/system/modules/programs/i3.nix
@@ -5,7 +5,6 @@
     i3 = {
       enable = true;
       extraSessionCommands = ''
-        ${pkgs.dunst}/bin/dunst &
         ${pkgs.sxhkd}/bin/sxhkd &
       '';
     };
diff --git a/system/modules/programs/window-manager.nix b/system/modules/programs/window-manager.nix
index ee6877d8..7095d523 100644
--- a/system/modules/programs/window-manager.nix
+++ b/system/modules/programs/window-manager.nix
@@ -36,7 +36,6 @@
 
   environment.systemPackages = with pkgs; [
     dmenu
-    dunst
     libnotify # for notify-send
     rofi
     sxhkd
diff --git a/user/dunst/.config/dunst/dunstrc b/user/dunst/.config/dunst/dunstrc
deleted file mode 100644
index 73c932d2..00000000
--- a/user/dunst/.config/dunst/dunstrc
+++ /dev/null
@@ -1,245 +0,0 @@
-[global]
-    font = Monospace 13
-
-    # Allow a small subset of html markup:
-    #   <b>bold</b>
-    #   <i>italic</i>
-    #   <s>strikethrough</s>
-    #   <u>underline</u>
-    #
-    # For a complete reference see
-    # <http://developer.gnome.org/pango/stable/PangoMarkupFormat.html>.
-    # If markup is not allowed, those tags will be stripped out of the
-    # message.
-    allow_markup = yes
-
-    # The format of the message.  Possible variables are:
-    #   %a  appname
-    #   %s  summary
-    #   %b  body
-    #   %i  iconname (including its path)
-    #   %I  iconname (without its path)
-    #   %p  progress value if set ([  0%] to [100%]) or nothing
-    # Markup is allowed
-    format = "<b>%s</b>\n%b"
-
-    # Sort messages by urgency.
-    sort = yes
-
-    # Show how many messages are currently hidden (because of geometry).
-    indicate_hidden = yes
-
-    # Alignment of message text.
-    # Possible values are "left", "center" and "right".
-    alignment = left
-
-    # The frequency with wich text that is longer than the notification
-    # window allows bounces back and forth.
-    # This option conflicts with "word_wrap".
-    # Set to 0 to disable.
-    bounce_freq = 0
-
-    # Show age of message if message is older than show_age_threshold
-    # seconds.
-    # Set to -1 to disable.
-    show_age_threshold = 60
-
-    # Split notifications into multiple lines if they don't fit into
-    # geometry.
-    word_wrap = yes
-
-    # Ignore newlines '\n' in notifications.
-    ignore_newline = no
-
-
-    # The geometry of the window:
-    #   [{width}]x{height}[+/-{x}+/-{y}]
-    # The geometry of the message window.
-    # The height is measured in number of notifications everything else
-    # in pixels.  If the width is omitted but the height is given
-    # ("-geometry x2"), the message window expands over the whole screen
-    # (dmenu-like).  If width is 0, the window expands to the longest
-    # message displayed.  A positive x is measured from the left, a
-    # negative from the right side of the screen.  Y is measured from
-    # the top and down respectevly.
-    # The width can be negative.  In this case the actual width is the
-    # screen width minus the width defined in within the geometry option.
-    geometry = "300x10-10+30"
-
-    # Shrink window if it's smaller than the width.  Will be ignored if
-    # width is 0.
-    shrink = no
-
-    # The transparency of the window.  Range: [0; 100].
-    # This option will only work if a compositing windowmanager is
-    # present (e.g. xcompmgr, compiz, etc.).
-    transparency = 0
-
-    # Don't remove messages, if the user is idle (no mouse or keyboard input)
-    # for longer than idle_threshold seconds.
-    # Set to 0 to disable.
-    idle_threshold = 120
-
-    # Which monitor should the notifications be displayed on.
-    monitor = 0
-
-    # Display notification on focused monitor.  Possible modes are:
-    #   mouse: follow mouse pointer
-    #   keyboard: follow window with keyboard focus
-    #   none: don't follow anything
-    #
-    # "keyboard" needs a windowmanager that exports the
-    # _NET_ACTIVE_WINDOW property.
-    # This should be the case for almost all modern windowmanagers.
-    #
-    # If this option is set to mouse or keyboard, the monitor option
-    # will be ignored.
-    follow = mouse
-
-    # Should a notification popped up from history be sticky or timeout
-    # as if it would normally do.
-    sticky_history = yes
-
-    # Maximum amount of notifications kept in history
-    history_length = 20
-
-    # Display indicators for URLs (U) and actions (A).
-    show_indicators = yes
-
-    # The height of a single line.  If the height is smaller than the
-    # font height, it will get raised to the font height.
-    # This adds empty space above and under the text.
-    line_height = 0
-
-    # Draw a line of "separatpr_height" pixel height between two
-    # notifications.
-    # Set to 0 to disable.
-    separator_height = 2
-
-    # Padding between text and separator.
-    padding = 8
-
-    # Horizontal padding.
-    horizontal_padding = 8
-
-    # Define a color for the separator.
-    # possible values are:
-    #  * auto: dunst tries to find a color fitting to the background;
-    #  * foreground: use the same color as the foreground;
-    #  * frame: use the same color as the frame;
-    #  * anything else will be interpreted as a X color.
-    separator_color = frame
-
-    # Print a notification on startup.
-    # This is mainly for error detection, since dbus (re-)starts dunst
-    # automatically after a crash.
-    startup_notification = false
-
-    # dmenu path.
-    dmenu = /usr/bin/env dmenu -p dunst:
-
-    # Browser for opening urls in context menu.
-    browser = /usr/bin/env firefox -new-tab
-
-    # Align icons left/right/off
-    icon_position = off
-
-    # Paths to default icons.
-    icon_folders = /usr/share/icons/gnome/16x16/status/:/usr/share/icons/gnome/16x16/devices/
-
-[frame]
-    width = 1
-    color = "#383838"
-
-[shortcuts]
-
-    # Shortcuts are specified as [modifier+][modifier+]...key
-    # Available modifiers are "ctrl", "mod1" (the alt-key), "mod2",
-    # "mod3" and "mod4" (windows-key).
-    # Xev might be helpful to find names for keys.
-
-    # Close notification.
-    close = mod4+apostrophe
-
-    # Close all notifications.
-    close_all = mod4+shift+apostrophe
-
-    # Redisplay last message(s).
-    # On the US keyboard layout "grave" is normally above TAB and left
-    # of "1".
-    history = mod4+grave
-
-    # Context menu.
-    context = mod4+shift+period
-
-[urgency_low]
-    # IMPORTANT: colors have to be defined in quotation marks.
-    # Otherwise the "#" and following would be interpreted as a comment.
-    background = "#b8b8b8"
-    foreground = "#f8f8f8"
-    timeout = 10
-
-[urgency_normal]
-    background = "#7cafc2"
-    foreground = "#f8f8f8"
-    timeout = 10
-
-[urgency_critical]
-    background = "#ab4642"
-    foreground = "#f8f8f8"
-    timeout = 0
-
-
-# Every section that isn't one of the above is interpreted as a rules to
-# override settings for certain messages.
-# Messages can be matched by "appname", "summary", "body", "icon", "category",
-# "msg_urgency" and you can override the "timeout", "urgency", "foreground",
-# "background", "new_icon" and "format".
-# Shell-like globbing will get expanded.
-#
-# SCRIPTING
-# You can specify a script that gets run when the rule matches by
-# setting the "script" option.
-# The script will be called as follows:
-#   script appname summary body icon urgency
-# where urgency can be "LOW", "NORMAL" or "CRITICAL".
-#
-# NOTE: if you don't want a notification to be displayed, set the format
-# to "".
-# NOTE: It might be helpful to run dunst -print in a terminal in order
-# to find fitting options for rules.
-
-#[espeak]
-#    summary = "*"
-#    script = dunst_espeak.sh
-
-#[script-test]
-#    summary = "*script*"
-#    script = dunst_test.sh
-
-#[ignore]
-#    # This notification will not be displayed
-#    summary = "foobar"
-#    format = ""
-
-#[signed_on]
-#    appname = Pidgin
-#    summary = "*signed on*"
-#    urgency = low
-#
-#[signed_off]
-#    appname = Pidgin
-#    summary = *signed off*
-#    urgency = low
-#
-#[says]
-#    appname = Pidgin
-#    summary = *says*
-#    urgency = critical
-#
-#[twitter]
-#    appname = Pidgin
-#    summary = *twitter.com*
-#    urgency = normal
-#
-# vim: ft=cfg
diff --git a/user/modules/dunst.nix b/user/modules/dunst.nix
index 78268c04..5c8a46eb 100644
--- a/user/modules/dunst.nix
+++ b/user/modules/dunst.nix
@@ -1,8 +1,43 @@
 { config, pkgs, ... }:
 
 {
-  xdg.configFile.dunst = {
-    recursive = true;
-    source = ../dunst/.config/dunst;
+  services.dunst = {
+    enable = true;
+    settings = {
+      global = {
+        font = "Monospace 13";
+        geometry = "300x10-10+30";
+        follow = "none";
+        sticky_history = "yes";
+        history_length = 20;
+        show_indicators = "yes";
+        separator_height = 2;
+        padding = 8;
+        horizontal_padding = 8;
+
+        separator_color = "frame";
+      };
+      frame = {
+        width = 1;
+        color = "#383838";
+      };
+      urgency_low = {
+        background = "#b8b8b8";
+        foreground = "#f8f8f8";
+        timeout = 10;
+      };
+
+      urgency_normal = {
+        background = "#7cafc2";
+        foreground = "#f8f8f8";
+        timeout = 10;
+      };
+
+      urgency_critical = {
+        background = "#ab4642";
+        foreground = "#f8f8f8";
+        timeout = 0;
+      };
+    };
   };
 }