Las notificaciones en Linux, explicadas para el que las sufre (dunst)
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:
- baja (
low): verde apagado, desaparece en 5 s. Cosas sin importancia. - normal: verde fósforo, 10 s. El día a día.
- crítica: ¡al revés! fondo verde, texto negro, y no desaparece sola (timeout 0) — se queda hasta que la cierras. Para lo que no puedes perderte.
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 contextEl 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.
Comentarios (0)
Sin comentarios todavia. Se el primero!
Deja un comentario