Dunst & Benachrichtigungen

Dunst konfigurieren: Linux-Benachrichtigungen verständlich erklärt

Benachrichtigungen lokal darstellen

Dunst stellt Mitteilungen über den lokalen Sitzungsbus dar. Die sendende App kann selbst online sein; ergänzte Dunst-Skripte können Daten weitergeben. Vertrauliche Meldungen gehören nicht in öffentliche Screenshots.

In diesem Artikel
  1. Wer zeigt eine Benachrichtigung an?
  2. Die Abschnitte meiner Datei lesen
  3. Eine separate Übungsdatei anlegen
  4. Position und Timeout praktisch testen
  5. Eine Regel nur für den Testnamen
  6. Fehler eingrenzen und zurückkehren
  7. Datenschutz und Quellen

Eine Benachrichtigung sollte sichtbar und verständlich sein, ohne den ganzen Desktop zu überdecken. Dunst ist ein schlanker Benachrichtigungsdienst, der besonders gut zu selbst zusammengestellten Linux-Desktops passt. Seine Einstellungen liegen in einer lokalen Textdatei.

Im Cthulhu-Repository liegt meine dunstrc. Diese Datei ist der Ausgangspunkt des Artikels. Sie belegt eine veröffentlichte Konfiguration, aber nicht, dass Dunst in jeder meiner aktuellen Sitzungen der aktive Dienst ist: Ein vollständiger Desktop wie Plasma bringt seine eigene Benachrichtigungsverwaltung mit.

Wer zeigt eine Benachrichtigung an?

Eine Anwendung sendet eine Nachricht über den Sitzungsbus an den zuständigen Benachrichtigungsdienst. Dunst zeichnet das Fenster, legt Darstellung und Regeln fest und kann Mitteilungen später wieder anzeigen. Der Browser oder Messenger bleibt für den Inhalt verantwortlich.

Prüfe vor dem Test, ob du tatsächlich Dunst verwendest:

dunstctl debug

Der Befehl versucht, Dunst zu erreichen und typische Verbindungsprobleme zu erkennen. Wenn ein anderer Dienst zuständig ist, solltest du nicht einfach zusätzlich Dunst starten und den bestehenden Desktop-Dienst verdrängen. Die folgende Übung setzt eine laufende Dunst-Sitzung voraus. Für die Einrichtung eines neuen Dienstes sind der Startmechanismus deines Desktops und die Paketdokumentation maßgeblich.

Die Abschnitte meiner Datei lesen

Mein globaler Abschnitt lautet:

[global]
frame_color = "#8aadf4"
separator_color = "#8aadf4"
font = JetBrainsMono Nerd Font 10
corner_radius = 8

[global] enthält allgemeine Vorgaben. Die Rahmen- und Trennfarbe ist ein helles Blau; die Schrift wird als Familienname und Größe angegeben. Runde Ecken betreffen die Darstellung des Benachrichtigungsfensters.

Darunter stehen drei Dringlichkeitsabschnitte. Mein normaler Hintergrund ist dunkel, die kritische Stufe rosa mit dunklem Text. Diese Farben sind eine andere Gestaltung als die Gruvbox-Palette meines X1-Gruvnode-Profils.

Abschnitt Verwendung
[urgency_low] Weniger dringliche Mitteilungen
[urgency_normal] Gewöhnliche Mitteilungen
[urgency_critical] Kritische Mitteilungen

Die sendende Anwendung bestimmt zunächst die Dringlichkeit. Farbe allein erkennt also nicht zuverlässig die Bedeutung einer Nachricht. Mein veröffentlichter Ausschnitt enthält noch keine persönlichen Positions-, Timeout- oder App-Regeln; die folgenden Ergänzungen sind eigene Lernbeispiele.

Eine separate Übungsdatei anlegen

Erstelle einen neuen Ordner:

mkdir -p ~/dunst-tutorial

Speichere diese Datei als ~/dunst-tutorial/dunstrc. Die Offset-Schreibweise orientiert sich an aktuellen Dunst-Versionen; bei älteren Versionen prüfst du das mitgelieferte Handbuch:

[global]
font = monospace 11
origin = top-right
offset = (20, 40)
width = 320
frame_width = 2
frame_color = "#8aadf4"
corner_radius = 8

[urgency_low]
background = "#181926"
foreground = "#cad3f5"
timeout = 4s

[urgency_normal]
background = "#1e2030"
foreground = "#cad3f5"
timeout = 8s

[urgency_critical]
background = "#ed8796"
foreground = "#181926"
timeout = 0

Eine aktuelle laufende Instanz kann ausdrücklich diese Datei laden:

dunstctl reload ~/dunst-tutorial/dunstrc

Dadurch ändern sich vorübergehend auch echte Benachrichtigungen dieser Sitzung. Die reguläre Datei wird nicht überschrieben. Um zu den beim ursprünglichen Dunst-Start gewählten Dateien zurückzukehren, verwendest du später dunstctl reload ohne Dateinamen.

Position und Timeout praktisch testen

Sende eine normale Übungsmeldung mit notify-send, das beispielsweise über das libnotify-Paket erhältlich ist:

notify-send --app-name=DunstTutorial --urgency=normal "Dunst-Test" "Position und Lesbarkeit prüfen"

Die Meldung sollte oben rechts erscheinen, mit Abstand zum Rand. origin wählt den Bezugspunkt; offset verschiebt die Fläche von dort. Passe zuerst nur den vertikalen Wert an und lade die Datei erneut.

timeout beschreibt die gewünschte Anzeigedauer. Anwendungen können eigene Timeout-Vorgaben senden; Regeln und Dunst-Einstellungen beeinflussen, welche Vorgabe gilt. Mit timeout = 0 bleibt eine Meldung nach Dunsts Einstellung stehen, bis sie geschlossen wird. Teste die kritische Stufe separat:

notify-send --app-name=DunstTutorial --urgency=critical "Dunst-Test" "Diese Übungsmeldung bewusst schließen"

Schließe die Meldung über die verfügbaren Dunst-Bedienelemente oder per:

dunstctl close

Eine Regel nur für den Testnamen

Ergänze am Dateiende einen benannten Abschnitt:

[tutorial]
appname = DunstTutorial
background = "#285577"
foreground = "#ffffff"

Nach dem Reload betrifft diese Farbe nur Nachrichten mit dem gezeigten App-Namen. Sende die normale Testmeldung erneut und vergleiche. Mehrere Filter in einer Regel müssen zusammen passen; Reihenfolge und spätere Regeln können das Ergebnis verändern.

Für echte Anwendungen ist ein stabiler desktop_entry-Filter oft geeigneter als ein übersetzbarer App-Name. Die Übung benutzt bewusst einen selbst gesetzten Namen, damit du den Zusammenhang kontrollieren kannst. Übernimm nicht unbesehen den sichtbaren Fenstertitel eines Messengers als vermeintlichen Filterwert.

Fehler eingrenzen und zurückkehren

Kommt keine Meldung, prüfe zuerst dunstctl debug, die Pause-Einstellung und den zuständigen Dienst. Ein Timeout- oder Farbproblem beginnt dagegen bei der geladenen Datei und den Regeln. Unter Wayland stammen globale Tastenkürzel üblicherweise vom Compositor; eine alte X11-Shortcut-Zeile kann dort wirkungslos sein.

Der Rückweg zur ursprünglichen Konfiguration lautet:

dunstctl reload

Teste anschließend eine normale Meldung. Erst danach überträgst du gewünschte Werte mit deinem Editor in die reguläre Datei, üblicherweise ~/.config/dunst/dunstrc. Aktuelle Dunst-Versionen unterstützen auch Drop-ins; zusätzliche Dateien können Einstellungen überschreiben.

Datenschutz und Quellen

Benachrichtigungen können Namen, Nachrichteninhalte oder Einmalcodes enthalten. Auch ein lokal laufender Dienst macht einen geteilten Screenshot nicht automatisch unkritisch. Ergänzte Aktionen und Skripte verdienen dieselbe Prüfung wie Shell-Befehle; für das Tutorial sind keine solchen Erweiterungen nötig.

Quellen und Konfiguration geprüft am 8. Oktober 2026.