NotifySound

Sonidos para las notificaciones que se quedan en silencio.

Estrellas en GitHub 100% Gratis y de Código Abierto Licencia MIT Linux / GNOME Python + GTK4

01El problema

En GNOME, una notificación solo hace sonido cuando la app que la envía incluye explícitamente un hint sound-name o sound-file. La mayoría de apps nunca lo hacen — Warp, terminales, compilaciones de IDE, herramientas tipo cron — así que sus notificaciones quedan completamente mudas.

Las apps que sí reproducen su propio sonido (Telegram, PWAs de WhatsApp, etc.) no se tocan por defecto: se marcan con la etiqueta "Tiene sonido propio" y su alternador por app aparece desactivado. Activa el alternador de esa app si quieres oír ambos sonidos intencionadamente.

02Demo

Activa el sonido para escuchar la notificación. Primero sin NotifySound (silenciosa), luego con NotifySound (suena).

03Capturas

Ventana principal de NotifySound: sonidos, volúmenes y switches por app
Reglas de sonido por contenido de una app en NotifySound (ejemplo real con tres reglas)

04¿Por qué existe esto?

Las notificaciones de GNOME no reproducen sonido por defecto. La especificación de notificaciones de freedesktop incluye hints opcionales (sound-name, sound-file), pero la mayoría de las apps nunca los establecen — así que terminales, compilaciones de IDE, herramientas tipo cron y muchas otras quedan completamente mudas.

No es un bug: los mantenedores de GNOME han explicado que las apps dependen de que las notificaciones sean silenciosas (algunas reproducen su propio sonido y duplicarían), y que la nueva API de notificaciones sí traerá sonido por defecto. Hasta entonces, NotifySound cubre ese hueco.

05Características

Sonido para cualquier notificación silenciosa

El daemon observa las rutas de notificaciones de GNOME, GTK y freedesktop, y reproduce tu sonido cuando una app envía una notificación sin uno.

Sin sonidos duplicados

Se respetan las notificaciones con sonido propio (o que declaran suppress-sound).

Control por aplicación

Activa/desactiva cada app y dale su propio sonido. Las apps se detectan automáticamente y se agrupan por proceso (así AIMP aparece como una sola entrada, no una por canción).

Volumen por app

Ajusta un volumen distinto (0-100 %) para cada aplicación: baja las apps ruidosas y sube las silenciosas.

Reglas por contenido

Reproduce o silencia notificaciones concretas por cuerpo, título o nivel de urgencia (baja, normal, crítica).

Anti-ráfaga

Las notificaciones repetidas de la misma app dentro de una ventana de tiempo configurable solo suenan una vez.

Alias y fusión de apps

Renombra las apps detectadas a un nombre amigable ("AIMP" en vez de un id de proceso). Fusiona duplicados renombrándolos al mismo alias; deshazlo desde el popover de información.

Archivos de sonido propios

Añade tus propios OGG/WAV/FLAC (y MP3/M4A/AAC con GStreamer, ffplay, mpv o mpg123).

Notificar cuando termina un comando

notify-sound done envía una notificación de finalización cuando termina un comando largo — y reproduce su sonido aunque el daemon no esté corriendo.

App de ajustes GTK4 sencilla

Elige sonidos, pruébalos, gestiona apps y el estado del daemon desde una ventana.

GUI bilingüe (EN/ES)

La app de ajustes está disponible en inglés y español, con un selector de idioma integrado.

Instalación por usuario

El instalador desde fuente no necesita sudo; en Ubuntu/Debian también puedes usar el paquete de la release.

06NotifySound vs. la extensión de GNOME

Existe una extensión de GNOME Shell que también añade sonido a las notificaciones. Esta es una comparación honesta:

NotifySoundExtensión de GNOME
TipoDaemon independiente + GUI GTK4Extensión de GNOME Shell
AlcanceRutas de GNOME, GTK y freedesktopNotificaciones de GNOME Shell
Control por appActivar/desactivar por app, sonidos por app, volumen por app, reglas por contenido, aliasSonido para todas las notificaciones
Sonidos propiosOGG/WAV/FLAC/MP3/M4A/AACTema de sonidos del sistema
AjustesVentana GTK4Preferencias de GNOME Extensions
Instalación.deb o script por usuarioUn clic en extensions.gnome.org
Fuera de GNOMEEnfoque GNOME, rutas freedesktopNo (solo GNOME Shell)

Ambos son gratuitos y de código abierto. Elige el que mejor se adapte a tu flujo — o usa ambos si prefieres.

07Instalación

Paquete para Ubuntu / Debian (recomendado):

sudo dpkg -i ./notify-sound_0.1.10_all.deb
sudo apt-get -f install

O instala por usuario desde fuente (sin sudo):

Dependencias de Ubuntu / Debian:

sudo apt install python3-gi gir1.2-gtk-4.0 gnome-session-canberra dbus

Luego clona e instala (sin necesidad de sudo):

git clone https://github.com/ChristianM023/notify-sound.git
cd notify-sound
./install.sh

Uso:

notify-sound               # abre la GUI de ajustes
notify-sound --daemon      # inicia el daemon
notify-sound --quit        # detiene el daemon
notify-sound done [mensaje] # notifica cuando termina un comando largo

Consejo: añade notify-sound done después de un comando largo para recibir una notificación cuando termina — suena aunque el daemon no esté corriendo:

./long-build.sh; notify-sound done

Otras distribuciones: consulta el README para requisitos y alternativas.

08Prueba rápida

Tras la instalación, comprueba que funciona en segundos:

notify-sound --daemon
notify-send "Prueba" "Si oyes un sonido, funciona"

Si instalaste con el autostart activado (el valor por defecto), el daemon ya está en ejecución y la línea notify-send por sí sola es suficiente.

También puedes probar la notificación de finalización de comando — suena aunque el daemon no esté corriendo:

notify-sound done "Listo"

09Solución de problemas

Consulta el README para la guía completa de solución de problemas.

10Privacidad

NotifySound se ejecuta totalmente en tu máquina — nunca se conecta a la red, no envía telemetría y no almacena el contenido de las notificaciones. Lee solo metadatos (nombre de la app, hints) en memoria; lo único que se escribe en disco es el estado por app (contador de notificaciones, última vez vista) en ~/.config/notify-sound/state.json, nunca el cuerpo de una notificación. Los archivos de configuración y estado se escriben atómicamente con O_NOFOLLOW y modo 0600, de modo que solo tu usuario puede leerlos.

Consulta el README para los detalles completos de privacidad y seguridad.