Dunst is a lightweight replacement for the notification-daemons provided by most desktop environments.
Install the package. There is no need to start or enable dunst; it is called by systemd when programs send notifications through dbus.
An example configuration file is included at
/usr/share/dunst/dunstrc. Copy this file to
~/.config/dunst/dunstrc and edit it accordingly.
Dunst allows for the use of html markup in notifications. Some examples are bold, italics, strikethrough and underline. For a complete reference see . HTML can be stripped from notifications if
markup is set to
The formatting of the notification can be specified. Options are as follows:
%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
These can be used in conjunction with HTML markup. For example the
format can be set to
<b>%s</b>\n%b for a bolded notification summary, a newline and the body unformatted.
Icons are set in the option
icon_path. Status and devices icons are needed. By default, Dunst looks for the icons. For example, to use (gnome-icon-theme's successor), instead:
icon_path = /usr/share/icons/Adwaita/16x16/status/:/usr/share/icons/Adwaita/16x16/devices/
Idle thresholds can be set letting the notification stay onscreen if the user is idle longer than the threshold.
To close a notification before it times out use
Control + space. If multiple notifications are onscreen
Control + Shift + Space closes all of them.
A history list can be accessed by using
Control + grave. A context menu can be opened using
Control + Shift + period. The context menu uses dmenu to filter out URLs and open them in your browser. The default browser can be set in the config like so:
browser = /usr/bin/chromium
You can create rules in your dunstrc file which match certain notifications and then perform an action on it such as executing a script.
To create a new rule create a new section with a custom name in your config file.
In that section you can now use the attributes appname, summary, body, icon, category, match_transient and msg_urgency to match the
Globbing is supported. See Scripting for an example.
Start dunst with the
When a notification is matched you can perform certain actions on it like modifying the format string, which is especially
useful if you want tocompletely ignore certain notifications.
In that case simply add the line
format="" to your rule.
Another useful feature is if you want to keep certain notifications out of your history for example if you use dunst
as a Volume indicator.
To achieve this simply add
history_ignore=yes to your rule.
Dunst can be configured to run scripts based on certain notification content. Here is an example using Dunst to run a script when someone fromsigns on:
[signed_on] appname = Pidgin summary = "*signed on*" urgency = low script = do_something.sh
The specified script will be passed the following parameters in that order: appname, summary, body, icon, urgency.
Dunst fails to start via systemd
When using dunst without a Display Manager, the
DISPLAY environment variable might not be correctly set.
To fix this, add the following to your
systemctl --user import-environment DISPLAY