Website review
This review may include AI-generated content and is not individually verified. Domain, certificate and other facts come from the observed data on this page.
What is Dunst?
Dunst is a lightweight notification daemon for Unix-like systems. It replaces the notification pop-ups that most desktop environments ship with, and it is aimed at people who run minimal, window-manager-centric setups they want to configure themselves. It does not depend on any desktop toolkit, so it fits into environments where a full desktop stack would be overkill.
What it does
- Displays notifications from applications that use the standard notification protocol.
- Runs on both X11 and Wayland, so it works across Linux distributions and BSDs.
- Is configured through a plain configuration file: fonts, icons, colors, timeouts and keyboard shortcuts are all adjustable, and changes can be hot-reloaded.
- Supports rules that change how matching notifications look or behave, for example recoloring messages from certain contacts or keeping important work alerts on screen until dismissed.
- Keeps notification history, so you can replay a missed notification with a shortcut.
- Offers multiple pause levels, which lets you build a Do Not Disturb mode that silences low-priority notifications while letting urgent ones through.
- Is keyboard-driven: shortcuts can close the oldest notification, close everything, or open history; left-click dismisses one notification and right-click dismisses all.
- Handles multiple monitors, letting you pin notifications to a chosen display or follow the focused one.
- Provides a context menu (via dmenu) for acting on displayed notifications, such as opening their URLs.
- Runs custom scripts on notifications matching a pattern, which is how people wire up things like spoken alerts.
Who it suits
Dunst is a good fit if you use a tiling or stacking window manager such as i3, sway or similar, and you want notification behavior to follow your own configuration file rather than a desktop environment's defaults. It is less relevant if you are happy with the notification system built into GNOME, KDE or another full desktop, since those already provide one.
A useful next step
If you are deciding whether to adopt it, check two things first: that your environment runs X11 or Wayland (it does either), and that you are comfortable editing a configuration file to get the behavior you want. Start with the default configuration, then add rules and pause levels only for the cases you actually hit, such as muting chat notifications during focused work. The project's documentation and FAQ are the place to look before reporting problems, and bug reports go through its GitHub issue tracker.
How does Dunst differ from the notification daemon that comes with my desktop environment?
Dunst replaces your desktop's built-in notification daemon with one that is lightweight, toolkit-independent, and configured through a plain text file. The practical difference is control: fonts, icons, timeouts, colors, shortcuts and placement are all yours to set, and changes can be hot-reloaded without restarting anything. It natively supports both X11 and Wayland and runs across Linux distributions and BSDs with minimal dependencies.
Where it changes daily use
- Rules: notifications matching a pattern can change color or behavior, so messages from a specific contact can stand out, or work alerts can stay on screen until you dismiss them.
- History and replay: a keyboard shortcut brings back the last notification, and repeated presses walk through history.
- Pause levels: you can pause notifications by priority rather than switching everything off, giving you a Do Not Disturb mode that still lets critical alerts through.
- Keyboard and mouse: shortcuts can close the oldest notification, close all of them, or open history; left-click dismisses one, right-click dismisses all.
- Multi-monitor: notifications can be pinned to a chosen monitor or follow keyboard or mouse focus.
- Context menu and scripts: a shortcut opens a dmenu-based menu for the current notifications, including opening their URLs, and custom scripts can run on matching notifications, such as reading them aloud.
Who benefits, and the trade-off
This fits window-manager-centric setups on X11 or Wayland, tiling desktops, and minimal environments where a full desktop notification stack feels heavy. If you never touch configuration and want notifications to look like the rest of your desktop out of the box, the built-in daemon is less work. Dunst asks you to write and maintain a config file, and its look will not automatically match a themed desktop environment.
A concrete case: a developer on a tiling Wayland setup wants Slack messages in one color, keeps build-failure alerts visible until dismissed, and pauses low-priority notifications during focus blocks. Dunst's rules and pause levels cover all three; a stock daemon typically offers only a global on/off toggle.
As a next step, check whether your desktop already runs its own daemon, since two daemons can conflict, then start from the default config and add rules one at a time. The project's documentation and showcase at Dunst are the place to begin.
How do I set up Dunst to work on Wayland or X11 with a minimal window manager?
Dunst is a notification daemon intended to replace the one bundled with most desktop environments, so on a minimal window manager you generally run Dunst as the notification service rather than relying on your WM or session to provide one. The project describes it as toolkit-independent, with native support for both X11 and Wayland, which is what makes it a fit for tiling and other stripped-down setups. Check the official documentation at Dunst for the current install and launch commands before configuring, since those details vary by distribution and session type.
Practical setup outline
- Install Dunst through your distribution's package manager, then make sure no other notification daemon is already running in the session — two daemons competing for the same notification interface is a common cause of notifications silently not appearing.
- Start Dunst with your session. On a minimal WM there is often no autostart mechanism, so launch it from your session startup script, your WM's autostart hook, or a systemd user unit. On Wayland, it must run inside the Wayland session so it can talk to the compositor.
- Confirm it is receiving notifications. Trigger a test notification from a terminal (for example with
notify-send) and check that it appears. If nothing shows, the usual culprits are a leftover daemon or Dunst not being started in the right environment. - Configure through the config file. Fonts, icons, timeouts, colors and keybindings are all set there, and the project notes that hot reloading is supported, so you can tweak and see changes without restarting.
Features that matter on a minimal WM
- Rules let you change appearance or behavior for notifications matching patterns — useful for keeping important work alerts on screen until dismissed while letting chat pings fade.
- Pause levels support a graded Do Not Disturb mode based on notification priority.
- History and replay let you recall a notification that vanished before you read it.
- Keyboard and mouse control: bind shortcuts to close the oldest or all notifications, or show history; left-click dismisses one, right-click dismisses all.
- Multi-monitor placement: choose a fixed monitor or follow keyboard/mouse focus.
- Context menu via dmenu for the current notifications, including opening their URLs.
- Scripts triggered on matching notifications, such as speech output or sounds.
A sensible next step is to start with a minimal config — default appearance, one or two keybindings for dismiss and history, and a single rule for your most important notification source — then add pause levels and scripts once basic delivery is confirmed on your chosen display server.
How can I configure Dunst rules to change or hold specific notifications?
Dunst rules are the feature to use when you want a notification's appearance or behaviour to depend on what it says, rather than on global settings. The project describes rules as matching specific patterns and then changing the look or behaviour of matching notifications — for example, colouring notifications from certain contacts differently, or keeping important work notifications on screen until you dismiss them manually. That is the core idea: one rule per pattern, with the effect you want attached.
How to think about a rule
Each rule needs a match and an action. In practice you decide three things:
- What to match on. The notification's text fields (such as its summary or body), and where useful its app name or urgency. Match as narrowly as you can, or a broad pattern will catch unrelated notifications.
- What to change. Visual settings like colour, font or icon, or behavioural ones like timeout and whether the notification stays until dismissed.
- What happens when nothing matches. Your normal defaults still apply, so rules are additions rather than replacements.
Changing appearance versus holding a notification
| Goal | Rule effect to aim for | Trade-off |
|---|---|---|
| Distinguish senders or apps by colour/icon | Override colour or icon for the matching pattern | Too many colour rules make the screen noisy and slow to scan |
| Keep an important notification visible | Set it to persist until manually dismissed | Persistent notifications stack up if you are away; pair with a keybinding to close all |
| Silence low-priority chatter | Combine with pause levels so only that priority is paused | Fine-grained pausing needs a little planning, or you will mute things you wanted to see |
The pause-levels feature is worth pairing with rules: Dunst supports several pause levels, so you can build a Do Not Disturb mode that suppresses routine notifications while letting urgent ones through.
A concrete scenario
Suppose you run a tiling window manager and want messages from your team chat to stay put while everything else fades after a few seconds. You would write one rule matching that app or sender that disables the timeout, and leave the default timeout for all other notifications. If a colleague's messages keep getting missed, add a second rule giving them a distinct colour. When the pattern is wrong, hot reloading means you can edit the configuration and see the change without restarting the daemon.
Next step
Start with a single rule matching one app name, confirm it behaves as expected, then add conditions. The official documentation and FAQ on Dunst cover the exact rule syntax and available fields; bug reports and feature requests go through the project's GitHub issue tracker.
How do I use Dunst's keyboard shortcuts, history replay, and pause levels for a Do Not Disturb setup?
Dunst's Do Not Disturb setup rests on three features that work together: keyboard shortcuts to control notifications, a history you can replay after the fact, and priority-based pause levels so you silence only what you choose.
Keyboard shortcuts
Shortcuts are bound in Dunst's configuration file to commands such as closing the oldest notification, closing all notifications, and showing history. Left-clicking a notification dismisses it; right-clicking dismisses all of them, so a mouse-only workflow is possible. The page also notes a context menu shortcut (via dmenu) for the currently displayed notifications, letting you open a notification's URL or trigger its associated action.
History replay
If you miss a notification as it disappears, a shortcut replays the last one, and repeated presses walk back through your notification history. For a Do Not Disturb routine, this is the safety net: silence everything during focused work, then replay the history afterward so nothing important is lost.
Pause levels
Pause levels are tiered, so you can pause notifications selectively by priority. A practical arrangement:
- A low pause level for routine chat and social notifications during meetings.
- A higher level that also holds back work notifications during deep-focus blocks.
- Full pause for genuine off-hours, relying on history replay to catch up later.
Putting it together
A concrete scenario: during a coding sprint, bind one shortcut to a moderate pause level and another to close-all. When the sprint ends, unpause and step through history. Rules complement this—matching notifications can be made to persist until manually dismissed, which is useful for alerts you never want to miss even while paused.
Decide your levels by asking which notification categories could wait an hour without harm; those belong in the pausable tiers, while anything urgent should be excluded via rules. Setup details and exact configuration syntax are on Dunst.
What do I need to know before reporting a bug or requesting a feature for Dunst?
Report bugs and request features through Dunst's GitHub issue tracker. Before opening a report, check the FAQ and the documentation first; the project asks you to do this so that known behaviour and configuration questions are resolved before they reach the tracker.
What to check first
- FAQ: confirms whether the behaviour is expected, especially for configuration and environment quirks.
- Documentation: covers configuration options, rules, and shortcut behaviour that may explain what you are seeing.
- Your own config: reproduce the issue with a minimal configuration if possible, since Dunst's customizability means many oddities come from rules, timeouts, or shortcut bindings rather than the daemon itself.
Details worth including
- Your window system (X11 or Wayland) and distribution, because Dunst supports both natively across Unix-like systems.
- Dunst version and how it was installed.
- The exact notification or command that triggers the problem, plus relevant config snippets.
- For feature requests, the use case: for example, wanting priority-based pause levels for a Do Not Disturb setup, or rules that match a specific application.
Practical note
Dunst changes behaviour through rules, scripts, and hot-reloaded configuration. If a notification looks wrong, try disabling custom rules and scripts before reporting; that isolates whether the issue is in Dunst or in your setup.
User reviews (0)