From 06bcd8c57f8071815397fbb0e6908d59e131a0c2 Mon Sep 17 00:00:00 2001 From: Thomas Dehaeze Date: Sun, 5 May 2019 16:27:42 +0200 Subject: [PATCH] Configure dunst --- dotfiles/config.org | 390 ++++++++++++++++++++------------------------ 1 file changed, 180 insertions(+), 210 deletions(-) diff --git a/dotfiles/config.org b/dotfiles/config.org index af0e6aa..cc7a5f5 100644 --- a/dotfiles/config.org +++ b/dotfiles/config.org @@ -455,86 +455,18 @@ Keyboard Options default-cache-ttl 60480000 #+END_SRC -* TODO Dunst +* Dunst :PROPERTIES: :header-args: :tangle ~/.config/dunst/dunstrc :header-args+: :comments both :mkdirp yes :END: -#+BEGIN_SRC conf +** Global +#+begin_src conf [global] - frame_width = 3 - frame_color = "#282828" - font = Hack Nerd Font 10 - markup = full - - # 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 = "%s\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 = 5 - - # 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 = no - - # 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 = "350x5-0+27" - - # Shrink window if it's smaller than the width. Will be ignored if - # width is 0. - shrink = yes - - # 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 = 20 - - # 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. - # default 120 - idle_threshold = 120 - +#+end_src +*** Display +#+begin_src conf # Which monitor should the notifications be displayed on. monitor = 0 @@ -551,31 +483,54 @@ Keyboard Options # will be ignored. follow = keyboard - # Should a notification popped up from history be sticky or timeout - # as if it would normally do. - sticky_history = 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 = "250x50-10+37" - # Maximum amount of notifications kept in history - history_length = 20 + # Show how many messages are currently hidden (because of geometry). + indicate_hidden = yes - # Display indicators for URLs (U) and actions (A). - show_indicators = yes + # Shrink window if it's smaller than the width. Will be ignored if + # width is 0. + shrink = no - # 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 + # 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 + + # The height of the entire notification. If the height is smaller + # than the font height and padding combined, it will be raised + # to the font height and padding. + notification_height = 0 # Draw a line of "separator_height" pixel height between two # notifications. # Set to 0 to disable. - separator_height = 2 + separator_height = 4 # Padding between text and separator. - padding = 0 + padding = 16 # Horizontal padding. - horizontal_padding = 8 + horizontal_padding = 16 + + # Defines width in pixels of frame around the notification window. + # Set to 0 to disable. + frame_width = 2 + + # Defines color of the frame around the notification window. + frame_color = "#2f343f" # Define a color for the separator. # possible values are: @@ -583,29 +538,132 @@ Keyboard Options # * 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 = #1d2021 + 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 + # 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. + # default 120 + idle_threshold = 120 + # Sort messages by urgency. + sort = yes +#+end_src +*** Text +#+begin_src conf + font = Hack Nerd Font 10 + + # 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 = 4 + + # Possible values are: + # full: Allow a small subset of html markup in notifications: + # bold + # italic + # strikethrough + # underline + # + # For a complete reference see + # . + # + # strip: This setting is provided for compatibility with some broken + # clients that send markup even though it's not enabled on the + # server. Dunst will try to strip the markup but the parsing is + # simplistic so using this option outside of matching rules for + # specific applications *IS GREATLY DISCOURAGED*. + # + # no: Disable markup parsing, incoming notifications will be treated as + # plain text. Dunst will not advertise that it has the body-markup + # capability if this is set as a global setting. + # + # It's important to note that markup inside the format option will be parsed + # regardless of what this is set to. + markup = full + + # 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 + # %n progress value if set without any extra characters + # Markup is allowed + format = "%s\n%b" + + # Alignment of message text. + # Possible values are "left", "center" and "right". + alignment = left + + # Show age of message if message is older than show_age_threshold + # seconds. + # Set to -1 to disable. + show_age_threshold = 300 + + # Split notifications into multiple lines if they don't fit into + # geometry. + word_wrap = yes + + # Ignore newlines '\n' in notifications. + ignore_newline = no + + # Merge multiple notifications with the same content + stack_duplicates = false + + # Hide the count of merged notifications with the same content + hide_duplicate_count = false + + # Display indicators for URLs (U) and actions (A). + show_indicators = yes + +#+end_src +*** Icons +#+begin_src conf + # Align icons left/right/off + icon_position = off + + # Limit icons size. + max_icon_size=32 + + # Paths to default icons. + icon_path = /usr/share/icons/Arc/16x16/status/:/usr/share/icons/Arc/16x16/devices/ +#+end_src +*** History +#+begin_src conf + # 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 +#+end_src +*** Misc/Advanced +#+BEGIN_SRC conf # dmenu path. dmenu = /usr/bin/dmenu -p dunst: # Browser for opening urls in context menu. browser = qutebrowser - # Align icons left/right/off - icon_position = left + # Always run rule-defined scripts, even if the notification is suppressed + always_run_script = true - # Paths to default icons. - icon_path = /usr/share/icons/Arc/16x16/status/:/usr/share/icons/Arc/16x16/devices/ + # Define the title of the windows spawned by dunst + title = Dunst - # Limit icons size. - max_icon_size=40 + # Define the class of the windows spawned by dunst + class = Dunst - # TODO - How to use these shortcuts? + # Print a notification on startup. + # This is mainly for error detection, since dbus (re-)starts dunst + # automatically after a crash. + startup_notification = false +#+end_src + +** Shortcuts +#+BEGIN_SRC conf [shortcuts] # Shortcuts are specified as [modifier+][modifier+]...key # Available modifiers are "ctrl", "mod1" (the alt-key), "mod2", @@ -613,125 +671,37 @@ Keyboard Options # Close notification. close = mod1+space + + # Close all notifications. close_all = mod1+shift+space + + # Redisplay last message(s). + # On the US keyboard layout "grave" is normally above TAB and left + # of "1". Make sure this key actually exists on your keyboard layout, + # e.g. check output of 'xmodmap -pke' history = mod1+grave + # Context menu. + context = mod1+shift+period +#+end_src + +** Urgency +#+BEGIN_SRC conf [urgency_low] - # IMPORTANT: colors have to be defined in quotation marks. - # Otherwise the "#" and following would be interpreted as a comment. - background = "#263238" - foreground = "#556064" - timeout = 10 + background = "#2f343f" + foreground = "#f5f8f6" + timeout = 2 [urgency_normal] - background = "#263238" - foreground = "#F9FAF9" - timeout = 10 + background = "#2f343f" + foreground = "#f5f8f6" + timeout = 4 [urgency_critical] - background = "#D62929" - foreground = "#F9FAF9" + background = "#2f343f" + foreground = "#f5f8f6" + frame_color = "#e3788f" 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 - - [New Mail] - appname = mbsync - category = email.arrived - urgency = normal - background = "#2F899E" - foreground = "#FFA247" - - #[mute.sh] - # appname = mute - # category = mute.sound - # script = mute.sh - - #[JDownloader] - # appname = JDownloader - # category = JD - # background = "#FFA247" - # foreground = "#FFFFFF" - - #[newsbeuter] - # summary = *Feeds* - # background = "#A8EB41" - # foreground = "#FFFFFF" - - #[irc] - # appname = weechat - # timeout = 0 - # background = "#0033bb" - # foreground = "#dddddd" - - #[weechat hl] - # appname = weechat - # category = weechat.HL - # background = "#FF5C47" - # foreground = "#FFFFFF" - - #[weechat pn] - # appname = weechat - # category = weechat.PM - # background = "#D53B84" - # foreground = "#FFFFFF" - - #[CMUS] - # appname = CMUS - # category = cmus - # background = "#6C4AB7" - # foreground = "#FFE756" #+END_SRC * feh