web-dev-qa-db-fra.com

Désactiver la bulle de notification du logiciel gnome (notify-osd) pour les mises à jour disponibles

Sous 16.04 sous Unity, après chaque connexion, je vois cette bulle de notification gênante dans le coin supérieur droit de l'écran indiquant que des mises à jour sont disponibles.

Ce n'est pas seulement gênant, mais souvent ce n'est même pas vrai, car je retiens des paquets qui ne devraient pas être mis à jour, mais le notifiant ne semble pas s'en soucier.

Comment puis-je désactiver ces notifications pour les mises à jour disponibles?

Je ne veux pas désactiver notify-osd complètement. De plus, j'ai déjà désactivé la vérification automatique des mises à jour, car je le fais manuellement en utilisant apt de toute façon.

6
Byte Commander

Selon cet article de Fedoraforum.org , vous pouvez essayer de désactiver le téléchargement automatique des mises à jour de GNOME Software:

gsettings set org.gnome.software download-updates false

La description de cette clé se lit comme suit:

S'il est activé, GNOME Software télécharge automatiquement les mises à jour en arrière-plan et invite l'utilisateur à les installer lorsqu'il est prêt.

Je n'ai pas de mises à jour à tester.

9
muru

Comment intercepter (tuer) uniquement des notifications spécifiques, en utilisant dbus-monitor

Vous pouvez automatiquement tuer spécifique messages si vous avez une chaîne d'identification spécifique, qui apparaît dans le texte de la notification. Dans ce cas, "update" fera probablement l'affaire.

Comment configurer

  1. Copiez le script ci-dessous dans un fichier vide:

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

    Enregistrez-le sous killnot.sh. Cela tue notify-osd si une certaine chaîne apparaît dans la notification. Modifiez la ligne match="update" afin de refléter la chaîne d’identification dans la ou les notifications à supprimer. Rend le script exécutable .

  2. Copiez le script ci-dessous dans un fichier vide:

    #!/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 {}
    

    Editez la ligne scriptpath=/home/jacob/Bureaublad/killnot.sh pour refléter le chemin réel du script 1 (killnot.sh) et enregistrez-la sous le nom monitor_notifs.sh. Rend le script exécutable .

  3. Tester-exécuter la configuration avec la commande:

    /path/to/monitor_notifs.sh
    

    Pour tester, exécutez dans un autre terminal la commande:

    notify-send <identifying_string>
    

    Le mésasage ne doit pas apparaître.

  4. Si tout fonctionne correctement, ajoutez-le à vos applications de démarrage: Dash> Applications de démarrage> Ajouter. Ajoutez la commande:

    /path/to/monitor_notifs.sh
    

Notes/explication

Le script monitor_notifs.sh utilise dbus-monitor de la même manière que cette réponse . L'exécuter en arrière-plan signifie rien pour votre système et ne déclenche que les notifications.

Ces notifications, lorsqu'elles se produisent, sont transmises en tant qu'argument au script killnot.sh, qui ne fait rien, sauf si la chaîne d'identification est dans le texte de la notification. Dans ce cas, il va tuer notify-osd.

En modifiant un peu le premier script, vous pouvez configurer simultanément les notifications d’arrêt pour plusieurs mots-clés.


EDIT n'exécute que la commande jusqu'à ce que la bulle apparaisse

If la notification n'apparaît qu'après la connexion, comme vous l'avez mentionné dans votre question, vous pouvez "améliorer" la solution pour qu'elle se tue après avoir intercepté la notification de mise à jour:

Si vous avez nommé les scripts dans la configuration exactement comme indiqué, ajoutez une ligne au script killnot.sh:

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

Le script devient alors:

#!/bin/bash
string=$1

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

Le script principal, run_intercept, sera alors tué après avoir rempli sa fonction et si aucun script d'arrière-plan n'est en cours d'exécution.

Plus près du nettoyage, vous ne pouvez pas entrer dans cette situation imo.

2
Jacob Vlijm

Bug corrigé sur la dernière version du logiciel gnome (ubuntu) https://bugs.launchpad.net/ubuntu/+source/gnome-software/+bug/1592382

1
julian-alarcon

J'ai trouvé le fichier /etc/xdg/autostart/update-notifier.desktop, qui lance automatiquement le service update-notifier. Comme vous le savez peut-être ou non, tout fichier .desktop situé dans /etc/xdg/autostart démarrera la commande donnée par le paramètre Exec=.

Tout ce que vous avez à faire pour le désactiver, est de faire mv /etc/xdg/autostart/update-notifier.desktop /etc/xdg/autostart/update-notifier.desktop.bak et alto! La réactivation est l'inverse.

1