Lightweight and customizable notification daemon

Clone this repo:
  1. 6ee4603 Merge pull request #883 from FuJa0815/fixed_doxygen by fwSmit · 1 year, 5 months ago master
  2. 988b8d2 fixed doxygen generation by Jan Führer · 1 year, 5 months ago
  3. 9f4f110 Merge pull request #862 from fwSmit/dbus-highlight by Nikos Tsipinakis · 1 year, 6 months ago
  4. e898fa5 docs: Document all dbus hints by fwsmit · 1 year, 7 months ago
  5. 702abc7 dbus: Add a hint for changing the highlight color by fwsmit · 1 year, 7 months ago

main codecov


A highly configurable and lightweight notification daemon.


Table of Contents


⚙️ Highly customizable

Customize fonts, icons, timeouts, and more. Are you unhappy with the default shortcuts and colors? No worries, you can change these all with a simple configuration file tweak.

click the images to see the dunstrc

📜 Scripting

Run custom scripts on notifications matching a specified pattern. Have espeak read out your notifications, or play a song when your significant other signs on in pidgin!

📋 Rules

Change the look or behavior of notifications matching a specified pattern. You could use this to change the color of message notifications from your favorite jabber buddies, or to prevent important work email notifications from disappearing until you manually dismiss them.

⏸️ Pause

If you want to take a break and not receive any notifications for a while, just pause dunst. All notifications will be saved for you to catch up later.

🕘 History

Catch an unread notification disappearing from the corner of your eye? Just tap a keyboard shortcut to replay the last notification, or continue tapping to see your notification history.


Most documentation can be found in dunst's man pages. In dunst(1) contains some general instructions on how to run dunst and in dunst(5) all of dunst's configuration options are explained.

On the dunst wiki you can find guides and installation instructions and on the dunst website there is a FAQ with common issues.


Dunst is available in many package repositories. If it's not available in your distro's repositories, don't worry, it's not hard to build it yourself.


  • dbus (runtime)
  • libxinerama
  • libxrandr
  • libxss
  • glib
  • pango/cairo
  • libnotify (optional, for dunstify)
  • wayland-client (can build without, see make parameters)
  • wayland-protocols (optional, for recompiling protocols)

The names will be different depending on your distribution.


git clone
cd dunst
sudo make install

Make parameters

  • DESTDIR=<PATH>: Set the destination directory of the installation. (Default: /)
  • PREFIX=<PATH>: Set the prefix of the installation. (Default: /usr/local)
  • BINDIR=<PATH>: Set the dunst executable's path (Default: ${PREFIX}/bin)
  • DATADIR=<PATH>: Set the path for shared files. (Default: ${PREFIX}/share)
  • MANDIR=<PATH>: Set the prefix of the manpage. (Default: ${DATADIR}/man)
  • SYSTEMD=(0|1): Disable/Enable the systemd unit. (Default: detected via pkg-config)
  • WAYLAND=(0|1): Disable/Enable wayland support. (Default: 1 (enabled))
  • SERVICEDIR_SYSTEMD=<PATH>: The path to put the systemd user service file. Unused, if SYSTEMD=0. (Default: detected via pkg-config)
  • SERVICEDIR_DBUS=<PATH>: The path to put the dbus service file. (Default: detected via pkg-config)
  • EXTRA_CFLAGS=<FLAGS>: Additional flags for the compiler.

Make sure to run all make calls with the same parameter set. So when building with make PREFIX=/usr, you have to install it with make PREFIX=/usr install, too.

Bug reports

Please use the issue tracker provided by GitHub to send us bug reports or feature requests.




Written by Sascha Kruse


Copyright 2013 Sascha Kruse and contributors (see LICENSE for licensing information)