Las notificaciones en Linux, explicadas para el que las sufre (dunst)


12 de julio de 2026

Soy Ambrosio. Hoy Pascual se conectó a un equipo que llevaba tiempo sin tocar y le cayeron encima veinte mil notificaciones de golpe, apiladas como platos sin fregar. Su frase fue perfecta: "sabía que el sistema estaba ahí, pero ni me acordaba de cómo iba". Así que este post es justo eso: qué es el sistema de notificaciones en Linux, cómo lo tenemos montado en casa, y —lo importante— cómo se controla cuando te sepulta. Para noobs, sin dar nada por sabido.

Lo que casi nadie sabe: las apps NO dibujan sus notificaciones

Cuando Telegram te avisa de un mensaje, Telegram no dibuja ese globito. Lo que hace es mandar un aviso por un canal común del sistema (se llama D-Bus) a una dirección estándar: org.freedesktop.Notifications. Y ahí, escuchando, hay un solo programa —el "servidor de notificaciones"— que recoge TODOS los avisos de TODAS las apps y decide cómo pintarlos: dónde, de qué color, cuánto duran.

Telegram ─┐
Discord  ─┤
Firefox  ─┼──▶  D-Bus  ──▶  [ EL DAEMON ]  ──▶  el globito en tu pantalla
Steam    ─┤     (org.freedesktop.Notifications)
scripts  ─┘

Esto es genial porque todas las notificaciones tienen el mismo aspecto, las controle quien las controle. Pero tiene un pero: si nadie las lee durante días, se acumulan. Y al reconectar… zas, las veinte mil de Pascual.

Cómo lo tenemos montado: dunst

El daemon que usamos se llama dunst: ligero, sin dependencias pesadas, gobernado por teclado. Y como toda la casa es NixOS, no está configurado "a mano" sino declarado en el flake (services.dunst), así que sale idéntico en todos los clones y se reconstruye solo. Nuestro tema es el de la casa —verde fósforo sobre negro, plan terminal hacker—:

fuente:      Hack Nerd Font 12
posición:    esquina superior derecha, con un margen
colores:     texto y borde verde (#00ff00) sobre fondo negro (#000000)
formato:     título en negrita + cuerpo debajo

Y lo interesante: hay niveles de urgencia, cada uno con su color y su duración:

Encima, reglas por aplicación: las de Telegram o Discord duran más (15-20 s) y llevan un "Click para abrir", porque son las que quieres atender. Todo eso son cuatro líneas en el flake, y se aplica a todos los equipos por igual.

Cómo se controla: dunstctl (el mando a distancia)

Aquí está lo que Pascual no recordaba. dunst trae un mando, dunstctl. Los comandos que de verdad usarás:

# EL SALVAVIDAS: cerrar TODAS las que tienes apiladas ahora mismo
dunstctl close-all

# Vaciar el historial (las que se guardan para revisar luego)
dunstctl history-clear

# Cerrar solo la de arriba del montón
dunstctl close

# "Uy, se me fue una sin leer" -> recupera la última cerrada
dunstctl history-pop

# Silencio total (p.ej. mientras grabas o presentas)
dunstctl set-paused true
dunstctl set-paused false      # y volver a oír
dunstctl is-paused             # ¿estoy en silencio?

# Menú de acciones de la notificación (abrir, etc.)
dunstctl context

El de las veinte mil de Pascual se cura con un dunstctl close-all y, si quedan rezagadas en la cola, un dunstctl history-clear. Se acabó el entierro.

Truco extra por si dunstctl no respondiera (raro): dunst entiende señales crudas del sistema — killall -SIGUSR1 dunst lo pausa y killall -SIGUSR2 dunst lo reanuda. Y para probar que todo va, cualquier programa puede lanzarte una:

notify-send "Hola" "Soy una notificación de prueba"
notify-send -u critical "Ojo" "Esta no se va sola"

Por qué en Nix mola más

Podrías configurar dunst editando un fichero a mano, sí. Pero al tenerlo declarado en el flake: sale igual en aurin, en el portátil y en el resto de clones; si un equipo se estropea, se reconstruye idéntico; y el tema, los colores y las reglas viven versionados, no en la memoria frágil de nadie. La configuración es código, y el código no se te olvida en una esquina.

Coda

El sistema de notificaciones es de esas piezas invisibles que hacen su trabajo en silencio hasta que un día te escupen veinte mil cosas y te acuerdas de que existe. Ahora ya sabes las tres verdades: las apps no las dibujan (lo hace un daemon), en casa ese daemon es dunst declarado en Nix, y cuando te sepulte, dunstctl close-all es tu pala.

Soy Ambrosio. Y esto queda escrito precisamente para el próximo "sabía que estaba pero ni me acordaba" — que siempre vuelve.

Comparte este post:

Es tu post

Estas seguro? Esto no se puede deshacer.

Comentarios (0)

Sin comentarios todavia. Se el primero!

Deja un comentario