Dunst is available in many package repositories. Chances are you can simply install it with your package manager. If not, don’t worry, it’s not hard to build it yourself.
You can check the version of Dunst available with your package manager on Repology.
On Arch linux you can get dunst from the Extra repository as dunst or from the AUR as dunst-git.
pacman -S dunst
On Debian and derivatives (Ubuntu, Kali, Cinnamon, etc.) you can install Dunst with
apt install dunst
See the Gentoo wiki page.
emerge --ask --verbose x11-misc/dunst
Dunst is available in the current
repository.
xbps-install dunst
dnf install dunst
You can install directly from the repository with
pkg install sysutils/dunst
Alternatively a dunst port is available in the ports tree.
cd /usr/ports/sysutils/dunst/
make install clean
There is a Nix package available here.
After you have installed all the dependencies needed, you can build dunst:
# clone the repository
git clone https://github.com/dunst-project/dunst.git
cd dunst
# compile and install
make
sudo make install
On Debian (and derivatives) systems the preferred method to install is to use checkinstall instead of sudo make install
PREFIX=/usr checkinstall # Prefix is necessary to systemctl service installation
sudo dpkg -i dunst_*.deb # Install generated .deb
Dunst can be customized by defining environmental variables when invoking make. The accepted parameters are listed below.
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.
Variable | Values | Default | Description |
---|---|---|---|
DESTDIR | <PATH> |
/ |
Set the destination directory of the installation. |
PREFIX | <PATH> |
/usr/local |
Set the prefix of the installation. |
BINDIR | <PATH> |
${PREFIX}/bin |
Set the dunst executable’s path. |
DATADIR | <PATH> |
${PREFIX}/share |
Set the path for shared files. |
BASHCOMPLETIONDIR | <PATH> |
${DATADIR}/bash-completion/completions |
Set the path for installation of bash completion files. |
FISHCOMPLETIONDIR | <PATH> |
${DATADIR}/fish/vendor_completions.d |
Set the path for installation of fish completion files. |
ZSHCOMPLETIONDIR | <PATH> |
${DATADIR}/zsh/site-functions |
Set the path for installation of zsh completion files. |
SYSCONFDIR | <PATH> |
${PREFIX}/etc/xdg |
Set the base directory for system config files. |
SYSCONFFILE | <PATH> |
${SYSCONFDIR}/dunst/dunstrc |
Set the absolute path to which the default dunstrc shall be installed. |
SYSCONF_FORCE_NEW | [0/1] |
0 (don’t overwrite) |
Overwrite existing ${SYSCONFFILE} . |
MANDIR | <PATH> |
${DATADIR}/man |
Set the prefix of the manpage. |
SYSTEMD | [0/1] |
unset (autodetect systemd) | Disable/Enable the systemd unit. |
WAYLAND | [0/1] |
1 (enabled) |
Disable/Enable wayland support. |
X11 | [0/1] |
1 (enabled) |
Disable/Enable X11 support. |
DUNSTIFY | [0/1] |
1 (enabled) |
Disable/Enable the libnotify dunstify utility. |
COMPLETIONS | [0/1] |
1 (enabled) |
Disable/Enable installation of shell completions. |
SERVICEDIR_SYSTEMD | <PATH> |
${PREFIX}/lib/systemd/user |
The path to put the systemd user service file. Unused, if SYSTEMD=0 . |
SERVICEDIR_DBUS | <PATH> |
${DATADIR}/dbus-1/services |
The path to put the dbus service file. |
EXTRA_CFLAGS | <FLAGS> |
unset | Additional flags for the compiler. |
Dunst comes with it’s own program for sending notifications, dunstify
.
If you installed dunst with a package manager this will probably be installed as well.
You might find it useful, however, to use a standard tool for that job.
If so, install notify-send
. It can’t do everything that dunstify can, but it will work for most things.
If you are building from source dunstify is enabled by default.
To build without dunstify set DUNSTIFY
to 0
.
# This builds without dunstify
DUNSTIFY=0 make all
DUNSTIFY=0 make install