Deshabilite la burbuja de notificación de gnome-software (notify-osd) para obtener actualizaciones disponibles

Deshabilite la burbuja de notificación de gnome-software (notify-osd) para obtener actualizaciones disponibles

Al ejecutar 16.04 con Unity, después de cada inicio de sesión veo esta molesta burbuja de notificación en la esquina superior derecha de la pantalla que indica que hay actualizaciones disponibles.

Esto no sólo es molesto, sino que a menudo ni siquiera es cierto, ya que estoy reteniendo algunos paquetes que no deberían actualizarse, pero al notificador parece no importarle.

¿Cómo puedo desactivar esas notificaciones de actualizaciones disponibles?

No quiero desactivar completamente Notify-OSD. Además, ya deshabilité la verificación automática de actualizaciones, ya que aptde todos modos lo estoy haciendo manualmente.

Respuesta1

De acuerdo aesta publicación de Fedoraforum.org, puede intentar deshabilitar la descarga automática de actualizaciones del software GNOME:

gsettings set org.gnome.software download-updates false

La descripción de esa clave dice:

Si está habilitado, el software GNOME descarga automáticamente las actualizaciones en segundo plano y solicita al usuario que las instale cuando esté listo.

No tengo ninguna actualización disponible para probar.

Respuesta2

Cómo interceptar (eliminar) solo notificaciones específicas, usando dbus-monitor

Puedes matar automáticamenteespecíficomensajes si tiene una cadena de identificación específica, que aparece en el texto de la notificación. En este caso, "actualizar" probablemente sea suficiente.

Como instalar

  1. Copie el siguiente script en un archivo vacío:

    #!/bin/bash
    
    string=$1
    match="update"
    
    if [[ $string == *$match* ]]
      then
        pkill notify-osd
    fi
    

    Guárdalo como killnot.sh. Esto se eliminará notify-osdsi aparece una determinada cadena en la notificación. Edite la línea match="update"para reflejar la cadena de identificación en las notificaciones que desea eliminar.Hacer ejecutable el script.

  2. Copie el siguiente script en un archivo vacío:

    #!/bin/bash
    
    scriptpath=/home/jacob/Bureaublad/killnot.sh
    
    dbus-monitor "interface='org.freedesktop.Notifications'" | \
    grep --line-buffered "string" | \
    grep --line-buffered -e method -e ":" -e '""' -e urgency -e notify -v | \
    grep --line-buffered '.*(?=string)|(?<=string).*' -oPi | \
    grep --line-buffered -v '^\s*$' | \
    xargs -I '{}' $scriptpath {}
    

    Edite la línea scriptpath=/home/jacob/Bureaublad/killnot.shpara reflejar la ruta real al script 1 ( killnot.sh) y guárdela como monitor_notifs.sh.Hacer ejecutable el script.

  3. Pruebe la configuración con el comando:

    /path/to/monitor_notifs.sh
    

    Para probar, ejecute en otra terminal el comando:

    notify-send <identifying_string>
    

    El mensaje no debería aparecer.

  4. Si todo funciona bien, agréguelo a sus aplicaciones de inicio: Dash > Aplicaciones de inicio > Agregar. Agregue el comando:

    /path/to/monitor_notifs.sh
    

Notas / explicación

El script monitor_notifs.shutiliza dbus-monitorde la misma manera queesta respuesta. Ejecutarlo en segundo plano significanadaa su sistema y solo activa notificaciones.

Estas notificaciones, cuando ocurren, se pasan como argumento al script killnot.sh, que no hace nada.a menos quela cadena de identificación está en el texto de la notificación. En ese caso matará notify-osd.

Con una pequeña edición del primer script, puede hacer que la configuración elimine las notificaciones de varias palabras clave a la vez.


EDITAR solo ejecute el comando hasta que aparezca la burbuja

Sila notificación solo aparece después de iniciar sesión, como menciona en su pregunta, puede "mejorar" la solución para que se elimine por sí sola después de interceptar la notificación de actualización:

Si nombró los scripts en la configuración exactamente como se indica, agregue una línea al killnot.shscript:

pkill -P "$( pgrep -f run_intercept )"

El guión entonces se convierte en:

#!/bin/bash
string=$1

match="update"
if [[ $string == *$match* ]]
  then
    pkill notify-osd
    pkill -P "$( pgrep -f run_intercept )"
fi

El script principal, run_intercept, se eliminará después de haber hecho su trabajo y ya no tendrá ningún script en segundo plano ejecutándose.

En mi opinión, no puedes acercarte a la limpieza en esta situación.

Respuesta3

Encontré el archivo /etc/xdg/autostart/update-notifier.desktopque inicia automáticamente el update-notifierservicio. Como puede que sepa o no, cualquier .desktoparchivo en /etc/xdg/autostartel directorio iniciará cualquier comando proporcionado por el Exec=parámetro.

¡Todo lo que tienes que hacer para desactivarlo es hacer mv /etc/xdg/autostart/update-notifier.desktop /etc/xdg/autostart/update-notifier.desktop.baky violar! La reactivación es al revés.

Respuesta4

Error solucionado en la última versión del software gnome (ubuntu)https://bugs.launchpad.net/ubuntu/+source/gnome-software/+bug/1592382

información relacionada