Dunst

Dunst is my notification daemon. This means it is responsible for actually displaying the notifications that other apps want to send. You can send your own notifications using notify-send.

The configuration below is mostly for visuals. You can find all configuration options here.

# See the default config file for more options/details
# See dunst(5) for all configuration options

[global]
    ### Display ###
        # Default monitor for notifications
        monitor = 0

        # display notifications on monitor with keyboard focus
        follow = keyboard


    ### Geometry ###

        # constant notification width
        width = 300
        # a dynamic width between say 0 and 300 would also be possible with
        # width = (0, 300)

        # The maximum height of a single notification, excluding the frame.
        height = (50,200)

        # Position of notifications
        origin = top-right

        # Offset from the origin
        offset = (20,20)

        # Scale factor autodetected
        scale = 0


    ### Appearance ###
    # further options for notifications of different urgency are set later
        ## Text ##
        font = Ubuntu Nerd Font 10
        line_height = 0     # The spacing between lines.
                            # If smaller than the font height, it will get raised to the font height.

        ## Markup ##
        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 = "<b>%a - %s</b> %p\n%b"
        # Specify where to make an ellipsis in long lines.
        # Possible values are "start", "middle" and "end".
        ellipsize = middle
        # Display indicators for URLs (U) and actions (A).
        show_indicators = false

        ## Icons ##
        enable_recursive_icon_lookup = true
        icon_theme = "breeze-dark, Flat-Remix-Violet-Dark"  # leftmost is used first
        icon_position = left
        min_icon_size = 32
        max_icon_size = 48

        ## Padding ##
        padding = 15
        horizontal_padding = 8
        text_icon_padding = 10   # between text and icon

        ## Alignment ##
        alignment = left
        vertical_alignment = center

        ## Frame ##
        frame_width = 2
        frame_color = "#ffffffd0"   # overwritten later
        separator_color = frame
        corner_radius = 10

        # gaps between notifications
        gap_size = 5


    ### Handling Multiple Notifications ###
        # Maximum number of notification (0 means no limit)
        notification_limit = 10

        # Show how many messages are currently hidden (because of notification_limit).
        indicate_hidden = yes

        # Sort type. Possible values are:
        #  * id: sort by id
        #  * urgency_ascending: sort by urgency (low then normal then critical)
        #  * urgency_descending: sort by urgency (critical then normal then low)
        #  * update: sort by update (most recent always at the top)
        sort = urgency_descending

        # Show age of message if message is older than show_age_threshold seconds.
        # Set to -1 to disable.
        show_age_threshold = 60

        # Stack together notifications with the same content
        stack_duplicates = true
        # Hide the count of stacked notifications with the same content
        hide_duplicate_count = 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.
    # A client can set the 'transient' hint to bypass this. See the rules
    # section for how to disable this if necessary
    idle_threshold = 120


    ### History ###
        # 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


    ### Misc/Advanced ###
        # Browser for opening urls in context menu.
        browser = /usr/bin/firefox
        # 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


    ### Mouse ###
        # Defines list of actions for each mouse event
        # Possible values are:
        # * none: Don't do anything.
        # * do_action: Invoke the action determined by the action_name rule. If there is no
        #              such action, open the context menu.
        # * open_url: If the notification has exactly one url, open it. If there are multiple
        #             ones, open the context menu.
        # * close_current: Close current notification.
        # * close_all: Close all notifications.
        # * context: Open context menu for the notification.
        # * context_all: Open context menu for all notifications.
        # These values can be strung together for each mouse event, and
        # will be executed in sequence.
        mouse_left_click = close_current
        mouse_middle_click = do_action, close_current
        mouse_right_click = close_all


#### Themeing per Urgency ####
[urgency_low]
    background = "#00000080"
    foreground = "#ffffff"
    frame_color = "#000000c0"
    timeout = 10
    # Icon for notifications with low urgency, uncomment to enable
    #default_icon = /path/to/icon

[urgency_normal]
    background = "#00000080"
    foreground = "#ffffff"
    frame_color = "#eeeeeed0"
    timeout = 10
    override_pause_level = 30
    # Icon for notifications with normal urgency, uncomment to enable
    #default_icon = /path/to/icon

[urgency_critical]
    background = "#80000080"
    foreground = "#ffffff"
    frame_color = "#cc0000"
    timeout = 0
    override_pause_level = 60
    # Icon for notifications with critical urgency, uncomment to enable
    #default_icon = /path/to/icon