---
obj: application
website: https://dunst-project.org
repo: https://github.com/dunst-project/dunst
---

# Dunst
A highly configurable and lightweight notification daemon.

![Screenshot](./dunst.avif)

## Configuration
Configuration is done with `~/.config/dunst/dunstrc`

The configuration is divided into sections in an ini-like format. Every section starts with the section's name in square brackets. After that is a list of key-value pairs that specify the settings. Whitespace is purely cosmetic and doesn't change the result.

### Global
- **monitor** (default: 0)
Specifies on which monitor the notifications should be displayed in, count starts at 0. See the **follow** setting.

- **follow** (values: \[none/mouse/keyboard] default: none)
	Defines where the notifications should be placed in a multi-monitor setup. All values except _none_ override the **monitor** setting.
	- **none**: The notifications will be placed on the monitor specified by the **monitor** setting.
	- **mouse**: The notifications will be placed on the monitor that the mouse is currently in.
	- **keyboard**: The notifications will be placed on the monitor that contains the window with keyboard focus.

- **width**
The width of the notification window in pixels. This can be a single number to specify a constant width or two numbers for the minimum and maximum width. The notification will expand from the minimum width as neccesary.
When setting a width bigger than the screen, dunst will clamp the width to the screen width. So if you want the notifcation to stretch the entire screen dynamically, you may set the width to a high enough number, which none of your screens exceed (e.g. 10000).

- **height**
The maximum height of a single notification.

- **notification_limit** (default: 0)
The number of notifications that can appear at one time. When this limit is reached any additional notifications will be queued and displayed when the currently displayed ones either time out or are manually dismissed. The value 0 means no limit. If **indicate_hidden** is true, then the specified limit is reduced by 1 and the last notification is a message informing how many hidden notifications are waiting to be displayed. See the **indicate_hidden** entry for more information.

- **origin** (default: top-right)
The origin of the notification window on the screen. It can then be moved with offset. Origin can be one of: top-left top-center top-right bottom-left bottom-center bottom-right left-center center right-center

- **offset** format: (horizontal, vertical)
Respectively the horizontal and vertical offset in pixels from the corner of the screen specified by **origin**. A negative offset will lead to the notification being off screen.

- **icon_corner_radius** (default: 0)
The corner radius of the icon image in pixels. Gives the icon rounded corners. Set to 0 to disable.

- **indicate_hidden** (values: \[true/false], default: true)
If this is set to true, a notification indicating how many notifications are not being displayed due to the notification limit (see **notification_limit**) will be shown **in place of the last notification slot**.
Meaning that if this is enabled the number of visible notifications will be 1 less than what is specified by **notification_limit**, the last slot will be taken by the hidden count.

- **separator_height** (default: 2)
The height in pixels of the separator between notifications, if set to 0 there will be no separating line between notifications. This setting will be ignored if **gap_size** is greater than 0.

- **padding** (default: 8)
The distance in pixels from the content to the separator/border of the window in the vertical axis

- **horizontal_padding** (default: 8)
The distance in pixels from the content to the border of the window in the horizontal axis

- **text_icon_padding** (default: 0)
The distance in pixels from the text to the icon (or vice versa) in the horizontal axis.

- **frame_width** (default: 3)
Defines width in pixels of frame around the notification window. Set to 0 to disable.

- **gap_size** (default: 0)
Size of gap to display between notifications.

- **font** (default: "Monospace 8")
Defines the font or font set used. Optionally set the size as a decimal number after the font name and space. Multiple font options can be separated with commas.

- **line_height** (default: 0)
The amount of extra spacing between text lines in pixels. Set to 0 to disable.

- **format** (default: `<b>%s</b>\n%b`)
Specifies how the various attributes of the notification should be formatted on the notification window.
If `\n` is present anywhere in the format, it will be replaced with a literal newline.
If any of the following strings are present, they will be replaced with the equivalent notification attribute:
	- **%a** appname
	- **%s** summary
	- **%b** body
	- **%i** iconname (including its path)
	- **%I** iconname (without its path)
	- **%p** progress value (\[ 0%] to \[100%])
	- **%n** progress value without any extra characters
	- **%\%** Literal %
If any of these exists in the format but hasn't been specified in the notification (e.g. no icon has been set), the placeholders will simply be removed from the format.

- **vertical_alignment** (values: [top/center/bottom], default: center)
Defines how the text and icon should be aligned vertically within the notification. If icons are disabled, this option has no effect.

- **history_length** (default: 20)
Maximum number of notifications that will be kept in history. After that limit is reached, older notifications will be deleted once a new one arrives.

- **browser** (default: "/usr/bin/xdg-open")
The command that will be run when opening a [URL](../../internet/URL.md). The [URL](../../internet/URL.md) to be opened will be appended to the end of the value of this setting.

- **corner_radius** (default: 0)
Define the corner radius in pixels. A corner radius of 0 will result in rectangular shaped notifications.
By enabling this setting the outer border and the frame will be shaped. If you have multiple notifications, the whole window is shaped, not every single notification.
To avoid the corners clipping the icon or text the corner radius will be automatically lowered to half of the notification height if it exceeds it.
