From 451285238c83c1350c48ecf955cc069d428e8ab2 Mon Sep 17 00:00:00 2001 From: Sravan Balaji Date: Sat, 4 May 2024 09:58:04 -0400 Subject: [PATCH] Clean Up Dunst Configuration - Remove Xresources values and xgetres calls - Remove bunch of comments from dunst config - Remove deprecated features in dunst config - Add more options to dunst control script --- .Xresources | 18 -- .config/dunst/dunstrc | 284 +++-------------------------- .config/dwm-flexipatch | 2 +- .scripts/dunst.sh | 68 +++---- README.org | 404 +++++++---------------------------------- 5 files changed, 111 insertions(+), 665 deletions(-) diff --git a/.Xresources b/.Xresources index 525b7bf..6154657 100644 --- a/.Xresources +++ b/.Xresources @@ -76,24 +76,6 @@ polybar.tray-maxsize: TRAY_MAXSIZE polybar.tray-scale: TRAY_SCALE polybar.maxlen: MAXLEN -! Dunst -dunst.geometry-x: 0 -dunst.geometry-y: BAR_HEIGHT -dunst.sep-height: BORDER_SIZE -dunst.padding: OUTER_GAPS -dunst.horiz-padding: OUTER_GAPS -dunst.max-icon-size: DPI -dunst.frame-width: BORDER_SIZE -dunst.low-background: BACKGROUND -dunst.low-foreground: FOREGROUND -dunst.low-frame: GREEN1 -dunst.normal-background: BACKGROUND -dunst.normal-foreground: FOREGROUND -dunst.normal-frame: GREEN1 -dunst.critical-background: RED1 -dunst.critical-foreground: FOREGROUND -dunst.critical-frame: GREEN1 - ! Display Scaling *.dpi: DPI Xcursor.size: CURSOR_SIZE diff --git a/.config/dunst/dunstrc b/.config/dunst/dunstrc index 88f16a2..bcf34be 100644 --- a/.config/dunst/dunstrc +++ b/.config/dunst/dunstrc @@ -1,270 +1,52 @@ [global] - ### Display ### - - # 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 window manager that exports the - # _NET_ACTIVE_WINDOW property. - # This should be the case for almost all modern window managers. - # - # If this option is set to mouse or keyboard, the monitor option - # will be ignored. follow = keyboard - - # 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 respectively. - # 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 = "0x0-10+40" - - # Show how many messages are currently hidden (because of geometry). - indicate_hidden = yes - - # 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 window manager is - # present (e.g. xcompmgr, compiz, etc.). + width = 700 + height = 120 + offset = 10x35 + origin = top-right + notification_limit = 50 + indicate_hidden = true + padding = 10 + icon_corner_radius = 0 + gap_size = 2 transparency = 15 - - # 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 = 1 - - # Padding between text and separator. - padding = 8 - - # Horizontal padding. - horizontal_padding = 10 - - # 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 = "#aaaaaa" - - # 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 = auto - - # Sort messages by urgency. - sort = yes - - # 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. - # A client can set the 'transient' hint to bypass this. See the rules - # section for how to disable this if necessary + sort = true idle_threshold = 120 - - ### Text ### - - font = Monospace 10 - - # The spacing between lines. If the height is smaller than the - # font height, it will get raised to the font height. + font = NotoSans Nerd Font 12 line_height = 0 - - # 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 - # %% Literal % - # Markup is allowed format = "%s | %a %p\n%b" - - # Alignment of message text. - # Possible values are "left", "center" and "right". alignment = center - - # Vertical alignment of message text and icon. - # Possible values are "top", "center" and "bottom". vertical_alignment = center - - # 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 - - # When word_wrap is set to no, specify where to make an ellipsis in long lines. - # Possible values are "start", "middle" and "end". + word_wrap = true ellipsize = middle - - # Ignore newlines '\n' in notifications. - ignore_newline = no - - # Stack together notifications with the same content stack_duplicates = true - - # Hide the count of stacked notifications with the same content hide_duplicate_count = false - - # Display indicators for URLs (U) and actions (A). show_indicators = yes - - ### Icons ### - - # Align icons left/right/off icon_position = left - - # Scale small icons up to this size, set to 0 to disable. Helpful - # for e.g. small files or high-dpi screens. In case of conflict, - # max_icon_size takes precedence over this. min_icon_size = 0 - - # Scale larger icons down to this size, set to 0 to disable - max_icon_size = 96 - - # Paths to default icons. - icon_path = /usr/share/icons/Papirus-Dark/16x16/status/:/usr/share/icons/Papirus-Dark/16x16/devices/:/usr/share/icons/gnome/16x16/status/:/usr/share/icons/gnome/16x16/devices/ - - ### History ### - - # Should a notification popped up from history be sticky or timeout - # as if it would normally do. + max_icon_size = 100 + icon_path = /usr/share/icons/Papirus-Dark/16x16/status/:/usr/share/icons/Papirus-Dark/16x16/devices/ sticky_history = yes - - # Maximum amount of notifications kept in history - history_length = 20 - - ### Misc/Advanced ### - - # dmenu path. + history_length = 50 dmenu = /usr/bin/rofi -dmenu -i -p dunst: - - # Browser for opening urls in context menu. browser = /usr/bin/vivaldi-stable - - # Always run rule-defined scripts, even if the notification is suppressed always_run_script = true - - # Define the title of the windows spawned by dunst title = Dunst - - # Define the class of the windows spawned by dunst class = Dunst - - # Print a notification on startup. - # This is mainly for error detection, since dbus (re-)starts dunst - # automatically after a crash. - startup_notification = true - - # Manage dunst's desire for talking - # Can be one of the following values: - # crit: Critical features. Dunst aborts - # warn: Only non-fatal warnings - # mesg: Important Messages - # info: all unimportant stuff - # debug: all less than unimportant stuff - verbosity = mesg - - # Define the corner radius of the notification window - # in pixel size. If the radius is 0, you have no rounded - # corners. - # The radius will be automatically lowered if it exceeds half of the - # notification height to avoid clipping text and/or icons. corner_radius = 10 - - # Ignore the dbus closeNotification message. - # Useful to enforce the timeout set by dunst configuration. Without this - # parameter, an application may close the notification sent before the - # user defined timeout. ignore_dbusclose = false - - ### Legacy - - # Use the Xinerama extension instead of RandR for multi-monitor support. - # This setting is provided for compatibility with older nVidia drivers that - # do not support RandR and using it on systems that support RandR is highly - # discouraged. - # - # By enabling this setting dunst will not be able to detect when a monitor - # is connected or disconnected which might break follow mode if the screen - # layout changes. force_xinerama = false - - ### mouse - - # Defines list of actions for each mouse event - # Possible values are: - # * none: Don't do anything. - # * do_action: If the notification has exactly one action, or one is marked as default, - # invoke it. If there are multiple and no default, open the context menu. - # * close_current: Close current notification. - # * close_all: Close all notifications. - # These values can be strung together for each mouse event, and - # will be executed in sequence. - mouse_left_click = close_current + mouse_left_click = context, close_current mouse_middle_click = close_all - mouse_right_click = do_action, close_current + mouse_right_click = close_current # Experimental features that may or may not work correctly. Do not expect them # to have a consistent behaviour across releases. [experimental] - # Calculate the dpi to use on a per-monitor basis. - # If this setting is enabled the Xft.dpi value will be ignored and instead - # dunst will attempt to calculate an appropriate dpi value for each monitor - # using the resolution and physical size. This might be useful in setups - # where there are multiple screens with very different dpi values. per_monitor_dpi = false [shortcuts] @@ -290,36 +72,22 @@ # context = ctrl+shift+period [urgency_low] - # IMPORTANT: colors have to be defined in quotation marks. - # Otherwise the "#" and following would be interpreted as a comment. - # background = "#222222" - # foreground = "#888888" - frame_color = "#bd93f9" - background = "#282a36" - foreground = "#f8f8f2" + frame_color = "#5AF78E" + background = "#282A36" + foreground = "#F8F8F2" timeout = 10 - # Icon for notifications with low urgency, uncomment to enable - #icon = /path/to/icon [urgency_normal] - # background = "#285577" - # foreground = "#ffffff" - frame_color = "#bd93f9" - background = "#282a36" - foreground = "#f8f8f2" + frame_color = "#5AF78E" + background = "#282A36" + foreground = "#F8F8F2" timeout = 10 - # Icon for notifications with normal urgency, uncomment to enable - #icon = /path/to/icon [urgency_critical] - # background = "#900000" - # foreground = "#ffffff" - frame_color = "#282a36" - background = "#ff5555" - foreground = "#f8f8f2" + frame_color = "#50FA7B" + background = "#FF5555" + foreground = "#F8F8F2" timeout = 0 - # Icon for notifications with critical urgency, uncomment to enable - #icon = /path/to/icon # Every section that isn't one of the above is interpreted as a rules to # override settings for certain messages. diff --git a/.config/dwm-flexipatch b/.config/dwm-flexipatch index 510b15c..f925b6c 160000 --- a/.config/dwm-flexipatch +++ b/.config/dwm-flexipatch @@ -1 +1 @@ -Subproject commit 510b15c7b87bd14284cc654381e28b20bf05d67e +Subproject commit f925b6c896a0f1ad778525d957362f557557f2f1 diff --git a/.scripts/dunst.sh b/.scripts/dunst.sh index 8c04308..309232d 100755 --- a/.scripts/dunst.sh +++ b/.scripts/dunst.sh @@ -1,17 +1,19 @@ #!/usr/bin/env bash help_menu() { echo "Script to interact with dunst. Use only one argument at a time." - echo " - Toggle On/Off: dunst.sh OR dunst.sh --toggle OR dunst.sh -t" - echo " - Turn On: dunst.sh --on" - echo " - Turn Off: dunst.sh --off" - echo " - Context Menu: dunst.sh --context" - echo " - Close Notification: dunst.sh --close" - echo " - History Pop: dunst.sh --history" - echo " - Toggle Do Not Disturb: dunst.sh --dnd" - echo " - Pause Notifications: dunst.sh --pause" - echo " - Unpause Notifications: dunst.sh --unpause" - echo " - Rofi Menu: dunst.sh --rofi" - echo " - Help: dunst.sh --help OR dunst.sh -h" + echo " - Toggle On/Off: dunst.sh OR dunst.sh --toggle OR dunst.sh -t" + echo " - Turn On: dunst.sh --on" + echo " - Turn Off: dunst.sh --off" + echo " - Context Menu: dunst.sh --context" + echo " - Close Notification: dunst.sh --close" + echo " - Close All Notifications: dunst.sh --close-all" + echo " - History Pop: dunst.sh --history" + echo " - History Clear: dunst.sh --history-clear" + echo " - Toggle Do Not Disturb: dunst.sh --dnd" + echo " - Pause Notifications: dunst.sh --pause" + echo " - Unpause Notifications: dunst.sh --unpause" + echo " - Rofi Menu: dunst.sh --rofi" + echo " - Help: dunst.sh --help OR dunst.sh -h" } is_running() { @@ -29,7 +31,9 @@ rofi_menu() { "󰂛 Turn Off - off" "󱨩 Open Actions - context" " Close Notification - close" + " Close All Notifications - close-all" " View History - history" + "󰎟 Clear History - history-clear" "󰂠 Toggle Do Not Disturb - dnd" " Pause Popup Notifications - pause" " Unpause Popup Notifications - unpause" @@ -64,46 +68,12 @@ main() { fi ;; --on) - # Get values from Xresources - config=~/.config/dunst/dunstrc - geometry_x=$(xgetres dunst.geometry-x) - geometry_y=$(xgetres dunst.geometry-y) - separator_height=$(xgetres dunst.sep-height) - padding=$(xgetres dunst.padding) - horizontal_padding=$(xgetres dunst.horiz-padding) - max_icon_size=$(xgetres dunst.max-icon-size) - frame_width=$(xgetres dunst.frame-width) - lb=$(xgetres dunst.low-background) - lf=$(xgetres dunst.low-foreground) - lfr=$(xgetres dunst.low-frame) - nb=$(xgetres dunst.normal-background) - nf=$(xgetres dunst.normal-foreground) - nfr=$(xgetres dunst.normal-frame) - cb=$(xgetres dunst.critical-background) - cf=$(xgetres dunst.critical-foreground) - cfr=$(xgetres dunst.critical-frame) - if [ $(is_running) -eq '1' ]; then pkill dunst fi # Start Dunst - /usr/bin/dunst -config $config \ - -geometry "0x0-$geometry_x+$geometry_y" \ - -separator_height "$separator_height" \ - -padding "$padding" \ - -horizontal_padding "$horizontal_padding" \ - -max_icon_size "$max_icon_size" \ - -frame_width "$frame_width" \ - -lb "$lb" \ - -lf "$lf" \ - -lfr "$lfr" \ - -nb "$nb" \ - -nf "$nf" \ - -nfr "$nfr" \ - -cb "$cb" \ - -cf "$cf" \ - -cfr "$cfr" & + /usr/bin/dunst -config ~/.config/dunst/dunstrc & notify-send "Turning Dunst ON" ;; @@ -120,9 +90,15 @@ main() { --close) dunstctl close ;; + --close-all) + dunstctl close-all + ;; --history) dunstctl history-pop ;; + --history-clear) + dunstctl history-clear + ;; --dnd) dunstctl set-paused toggle ;; diff --git a/README.org b/README.org index 364978d..2e96996 100644 --- a/README.org +++ b/README.org @@ -14,16 +14,10 @@ - [[#gitconfig][Gitconfig]] - [[#notifications][Notifications]] - [[#dunst-notification-daemon][Dunst Notification Daemon]] - - [[#global][Global]] - - [[#experimental][Experimental]] - - [[#shortcuts][Shortcuts]] - - [[#urgency-low][Urgency Low]] - - [[#urgency-normal][Urgency Normal]] - - [[#urgency-critical][Urgency Critical]] - - [[#miscellaneous][Miscellaneous]] + - [[#configuration][Configuration]] - [[#control-script][Control Script]] - [[#deadd-notification-center][Deadd Notification Center]] - - [[#configuration][Configuration]] + - [[#configuration-1][Configuration]] - [[#styling][Styling]] - [[#control-script-1][Control Script]] - [[#awesomewm-naughty][AwesomeWM Naughty]] @@ -34,7 +28,7 @@ - [[#control-script-2][Control Script]] - [[#application-launcher][Application Launcher]] - [[#rofi][Rofi]] - - [[#configuration-1][Configuration]] + - [[#configuration-2][Configuration]] - [[#themes][Themes]] - [[#greenclip-clipboard-manager][Greenclip Clipboard Manager]] - [[#display-configuration--effects][Display Configuration & Effects]] @@ -388,284 +382,70 @@ Things to ignore in dotfiles git repo. ** Dunst Notification Daemon -*** Global +*** Configuration + +See ~man dunst.5~ for available options. + +**** Global #+BEGIN_SRC conf :tangle .config/dunst/dunstrc [global] - ### Display ### - - # 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 window manager that exports the - # _NET_ACTIVE_WINDOW property. - # This should be the case for almost all modern window managers. - # - # If this option is set to mouse or keyboard, the monitor option - # will be ignored. follow = keyboard - - # 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 respectively. - # 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 = "0x0-10+40" - - # Show how many messages are currently hidden (because of geometry). - indicate_hidden = yes - - # 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 window manager is - # present (e.g. xcompmgr, compiz, etc.). + width = 700 + height = 120 + offset = 10x35 + origin = top-right + notification_limit = 50 + indicate_hidden = true + padding = 10 + icon_corner_radius = 0 + gap_size = 2 transparency = 15 - - # 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 = 1 - - # Padding between text and separator. - padding = 8 - - # Horizontal padding. - horizontal_padding = 10 - - # 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 = "#aaaaaa" - - # 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 = auto - - # Sort messages by urgency. - sort = yes - - # 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. - # A client can set the 'transient' hint to bypass this. See the rules - # section for how to disable this if necessary + sort = true idle_threshold = 120 - - ### Text ### - - font = Monospace 10 - - # The spacing between lines. If the height is smaller than the - # font height, it will get raised to the font height. + font = NotoSans Nerd Font 12 line_height = 0 - - # 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 - # %% Literal % - # Markup is allowed format = "%s | %a %p\n%b" - - # Alignment of message text. - # Possible values are "left", "center" and "right". alignment = center - - # Vertical alignment of message text and icon. - # Possible values are "top", "center" and "bottom". vertical_alignment = center - - # 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 - - # When word_wrap is set to no, specify where to make an ellipsis in long lines. - # Possible values are "start", "middle" and "end". + word_wrap = true ellipsize = middle - - # Ignore newlines '\n' in notifications. - ignore_newline = no - - # Stack together notifications with the same content stack_duplicates = true - - # Hide the count of stacked notifications with the same content hide_duplicate_count = false - - # Display indicators for URLs (U) and actions (A). show_indicators = yes - - ### Icons ### - - # Align icons left/right/off icon_position = left - - # Scale small icons up to this size, set to 0 to disable. Helpful - # for e.g. small files or high-dpi screens. In case of conflict, - # max_icon_size takes precedence over this. min_icon_size = 0 - - # Scale larger icons down to this size, set to 0 to disable - max_icon_size = 96 - - # Paths to default icons. - icon_path = /usr/share/icons/Papirus-Dark/16x16/status/:/usr/share/icons/Papirus-Dark/16x16/devices/:/usr/share/icons/gnome/16x16/status/:/usr/share/icons/gnome/16x16/devices/ - - ### History ### - - # Should a notification popped up from history be sticky or timeout - # as if it would normally do. + max_icon_size = 100 + icon_path = /usr/share/icons/Papirus-Dark/16x16/status/:/usr/share/icons/Papirus-Dark/16x16/devices/ sticky_history = yes - - # Maximum amount of notifications kept in history - history_length = 20 - - ### Misc/Advanced ### - - # dmenu path. + history_length = 50 dmenu = /usr/bin/rofi -dmenu -i -p dunst: - - # Browser for opening urls in context menu. browser = /usr/bin/vivaldi-stable - - # Always run rule-defined scripts, even if the notification is suppressed always_run_script = true - - # Define the title of the windows spawned by dunst title = Dunst - - # Define the class of the windows spawned by dunst class = Dunst - - # Print a notification on startup. - # This is mainly for error detection, since dbus (re-)starts dunst - # automatically after a crash. - startup_notification = true - - # Manage dunst's desire for talking - # Can be one of the following values: - # crit: Critical features. Dunst aborts - # warn: Only non-fatal warnings - # mesg: Important Messages - # info: all unimportant stuff - # debug: all less than unimportant stuff - verbosity = mesg - - # Define the corner radius of the notification window - # in pixel size. If the radius is 0, you have no rounded - # corners. - # The radius will be automatically lowered if it exceeds half of the - # notification height to avoid clipping text and/or icons. corner_radius = 10 - - # Ignore the dbus closeNotification message. - # Useful to enforce the timeout set by dunst configuration. Without this - # parameter, an application may close the notification sent before the - # user defined timeout. ignore_dbusclose = false - - ### Legacy - - # Use the Xinerama extension instead of RandR for multi-monitor support. - # This setting is provided for compatibility with older nVidia drivers that - # do not support RandR and using it on systems that support RandR is highly - # discouraged. - # - # By enabling this setting dunst will not be able to detect when a monitor - # is connected or disconnected which might break follow mode if the screen - # layout changes. force_xinerama = false - - ### mouse - - # Defines list of actions for each mouse event - # Possible values are: - # * none: Don't do anything. - # * do_action: If the notification has exactly one action, or one is marked as default, - # invoke it. If there are multiple and no default, open the context menu. - # * close_current: Close current notification. - # * close_all: Close all notifications. - # These values can be strung together for each mouse event, and - # will be executed in sequence. - mouse_left_click = close_current + mouse_left_click = context, close_current mouse_middle_click = close_all - mouse_right_click = do_action, close_current + mouse_right_click = close_current #+END_SRC -*** Experimental +**** Experimental #+BEGIN_SRC conf :tangle .config/dunst/dunstrc # Experimental features that may or may not work correctly. Do not expect them # to have a consistent behaviour across releases. [experimental] - # Calculate the dpi to use on a per-monitor basis. - # If this setting is enabled the Xft.dpi value will be ignored and instead - # dunst will attempt to calculate an appropriate dpi value for each monitor - # using the resolution and physical size. This might be useful in setups - # where there are multiple screens with very different dpi values. per_monitor_dpi = false #+END_SRC -*** Shortcuts +**** Shortcuts #+BEGIN_SRC conf :tangle .config/dunst/dunstrc [shortcuts] @@ -691,51 +471,37 @@ Things to ignore in dotfiles git repo. # context = ctrl+shift+period #+END_SRC -*** Urgency Low +**** Urgency Low #+BEGIN_SRC conf :tangle .config/dunst/dunstrc [urgency_low] - # IMPORTANT: colors have to be defined in quotation marks. - # Otherwise the "#" and following would be interpreted as a comment. - # background = "#222222" - # foreground = "#888888" - frame_color = "#bd93f9" - background = "#282a36" - foreground = "#f8f8f2" + frame_color = "#5AF78E" + background = "#282A36" + foreground = "#F8F8F2" timeout = 10 - # Icon for notifications with low urgency, uncomment to enable - #icon = /path/to/icon #+END_SRC -*** Urgency Normal +**** Urgency Normal #+BEGIN_SRC conf :tangle .config/dunst/dunstrc [urgency_normal] - # background = "#285577" - # foreground = "#ffffff" - frame_color = "#bd93f9" - background = "#282a36" - foreground = "#f8f8f2" + frame_color = "#5AF78E" + background = "#282A36" + foreground = "#F8F8F2" timeout = 10 - # Icon for notifications with normal urgency, uncomment to enable - #icon = /path/to/icon #+END_SRC -*** Urgency Critical +**** Urgency Critical #+BEGIN_SRC conf :tangle .config/dunst/dunstrc [urgency_critical] - # background = "#900000" - # foreground = "#ffffff" - frame_color = "#282a36" - background = "#ff5555" - foreground = "#f8f8f2" + frame_color = "#50FA7B" + background = "#FF5555" + foreground = "#F8F8F2" timeout = 0 - # Icon for notifications with critical urgency, uncomment to enable - #icon = /path/to/icon #+END_SRC -*** Miscellaneous +**** Miscellaneous #+BEGIN_SRC conf :tangle .config/dunst/dunstrc # Every section that isn't one of the above is interpreted as a rules to @@ -861,17 +627,19 @@ Things to ignore in dotfiles git repo. #+BEGIN_SRC shell :shebang #!/usr/bin/env bash :tangle .scripts/dunst.sh help_menu() { echo "Script to interact with dunst. Use only one argument at a time." - echo " - Toggle On/Off: dunst.sh OR dunst.sh --toggle OR dunst.sh -t" - echo " - Turn On: dunst.sh --on" - echo " - Turn Off: dunst.sh --off" - echo " - Context Menu: dunst.sh --context" - echo " - Close Notification: dunst.sh --close" - echo " - History Pop: dunst.sh --history" - echo " - Toggle Do Not Disturb: dunst.sh --dnd" - echo " - Pause Notifications: dunst.sh --pause" - echo " - Unpause Notifications: dunst.sh --unpause" - echo " - Rofi Menu: dunst.sh --rofi" - echo " - Help: dunst.sh --help OR dunst.sh -h" + echo " - Toggle On/Off: dunst.sh OR dunst.sh --toggle OR dunst.sh -t" + echo " - Turn On: dunst.sh --on" + echo " - Turn Off: dunst.sh --off" + echo " - Context Menu: dunst.sh --context" + echo " - Close Notification: dunst.sh --close" + echo " - Close All Notifications: dunst.sh --close-all" + echo " - History Pop: dunst.sh --history" + echo " - History Clear: dunst.sh --history-clear" + echo " - Toggle Do Not Disturb: dunst.sh --dnd" + echo " - Pause Notifications: dunst.sh --pause" + echo " - Unpause Notifications: dunst.sh --unpause" + echo " - Rofi Menu: dunst.sh --rofi" + echo " - Help: dunst.sh --help OR dunst.sh -h" } is_running() { @@ -889,7 +657,9 @@ rofi_menu() { "󰂛 Turn Off - off" "󱨩 Open Actions - context" " Close Notification - close" + " Close All Notifications - close-all" " View History - history" + "󰎟 Clear History - history-clear" "󰂠 Toggle Do Not Disturb - dnd" " Pause Popup Notifications - pause" " Unpause Popup Notifications - unpause" @@ -924,46 +694,12 @@ main() { fi ;; --on) - # Get values from Xresources - config=~/.config/dunst/dunstrc - geometry_x=$(xgetres dunst.geometry-x) - geometry_y=$(xgetres dunst.geometry-y) - separator_height=$(xgetres dunst.sep-height) - padding=$(xgetres dunst.padding) - horizontal_padding=$(xgetres dunst.horiz-padding) - max_icon_size=$(xgetres dunst.max-icon-size) - frame_width=$(xgetres dunst.frame-width) - lb=$(xgetres dunst.low-background) - lf=$(xgetres dunst.low-foreground) - lfr=$(xgetres dunst.low-frame) - nb=$(xgetres dunst.normal-background) - nf=$(xgetres dunst.normal-foreground) - nfr=$(xgetres dunst.normal-frame) - cb=$(xgetres dunst.critical-background) - cf=$(xgetres dunst.critical-foreground) - cfr=$(xgetres dunst.critical-frame) - if [ $(is_running) -eq '1' ]; then pkill dunst fi # Start Dunst - /usr/bin/dunst -config $config \ - -geometry "0x0-$geometry_x+$geometry_y" \ - -separator_height "$separator_height" \ - -padding "$padding" \ - -horizontal_padding "$horizontal_padding" \ - -max_icon_size "$max_icon_size" \ - -frame_width "$frame_width" \ - -lb "$lb" \ - -lf "$lf" \ - -lfr "$lfr" \ - -nb "$nb" \ - -nf "$nf" \ - -nfr "$nfr" \ - -cb "$cb" \ - -cf "$cf" \ - -cfr "$cfr" & + /usr/bin/dunst -config ~/.config/dunst/dunstrc & notify-send "Turning Dunst ON" ;; @@ -980,9 +716,15 @@ main() { --close) dunstctl close ;; + --close-all) + dunstctl close-all + ;; --history) dunstctl history-pop ;; + --history-clear) + dunstctl history-clear + ;; --dnd) dunstctl set-paused toggle ;; @@ -9771,28 +9513,6 @@ polybar.tray-scale: TRAY_SCALE polybar.maxlen: MAXLEN #+END_SRC -**** Dunst - -#+BEGIN_SRC conf :tangle .Xresources -! Dunst -dunst.geometry-x: 0 -dunst.geometry-y: BAR_HEIGHT -dunst.sep-height: BORDER_SIZE -dunst.padding: OUTER_GAPS -dunst.horiz-padding: OUTER_GAPS -dunst.max-icon-size: DPI -dunst.frame-width: BORDER_SIZE -dunst.low-background: BACKGROUND -dunst.low-foreground: FOREGROUND -dunst.low-frame: GREEN1 -dunst.normal-background: BACKGROUND -dunst.normal-foreground: FOREGROUND -dunst.normal-frame: GREEN1 -dunst.critical-background: RED1 -dunst.critical-foreground: FOREGROUND -dunst.critical-frame: GREEN1 -#+END_SRC - **** Display Scaling #+BEGIN_SRC conf :tangle .Xresources