Wenn ich 16.04 mit Unity ausführe, sehe ich nach jeder Anmeldung diese nervige Benachrichtigungsblase in der oberen rechten Ecke des Bildschirms, dass Updates verfügbar sind.
Das ist nicht nur ärgerlich, sondern oft auch unwahr, da ich einige Pakete zurückhalte, die nicht aktualisiert werden sollten, was den Notifier aber scheinbar nicht interessiert.
Wie kann ich diese Benachrichtigungen für verfügbare Updates deaktivieren?
Ich möchte notify-osd nicht vollständig deaktivieren. Außerdem habe ich die automatische Suche nach Updates bereits deaktiviert, da ich dies sowieso manuell mache apt
.
Antwort1
Entsprechenddieser Beitrag auf Fedoraforum.orgkönnen Sie versuchen, das automatische Herunterladen von Updates durch GNOME Software zu deaktivieren:
gsettings set org.gnome.software download-updates false
Die Beschreibung dieses Schlüssels lautet:
Wenn aktiviert, lädt die GNOME-Software Aktualisierungen automatisch im Hintergrund herunter und fordert den Benutzer auf, sie zu installieren, wenn sie bereit sind.
Ich habe keine Updates zum Testen zur Hand.
Antwort2
So fangen Sie mit dbus-monitor nur bestimmte Benachrichtigungen ab (löschen sie)
Sie können automatisch tötenSpezifischNachrichten, wenn Sie eine bestimmte identifizierende Zeichenfolge haben, die im Text der Benachrichtigung vorkommt. In diesem Fall reicht wahrscheinlich „Update“ aus.
Wie stellt man das ein
Kopieren Sie das folgende Skript in eine leere Datei:
#!/bin/bash string=$1 match="update" if [[ $string == *$match* ]] then pkill notify-osd fi
Speichern Sie es unter
killnot.sh
. Dies wird beendet,notify-osd
wenn eine bestimmte Zeichenfolge in der Benachrichtigung vorkommt. Bearbeiten Sie die Zeile,match="update"
um die identifizierende Zeichenfolge in den Benachrichtigungen wiederzugeben, die Sie beenden möchten.Machen Sie das Skript ausführbar.Kopieren Sie das folgende Skript in eine leere Datei:
#!/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 {}
Bearbeiten Sie die Zeile,
scriptpath=/home/jacob/Bureaublad/killnot.sh
um den tatsächlichen Pfad zu Skript 1 (killnot.sh
) anzuzeigen, und speichern Sie es alsmonitor_notifs.sh
.Machen Sie das Skript ausführbar.Testen Sie das Setup mit dem folgenden Befehl:
/path/to/monitor_notifs.sh
Führen Sie zum Testen in einem anderen Terminal den folgenden Befehl aus:
notify-send <identifying_string>
Die Meldung sollte nicht erscheinen.
Wenn alles funktioniert, fügen Sie es zu Ihren Startanwendungen hinzu: Dash > Startanwendungen > Hinzufügen. Fügen Sie den Befehl hinzu:
/path/to/monitor_notifs.sh
Hinweise / Erläuterungen
Das Skript monitor_notifs.sh
verwendet dbus-monitor
in gleicher Weise wiediese Antwort. Wenn es im Hintergrund ausgeführt wird, bedeutetNichtsan Ihr System und löst nur Benachrichtigungen aus.
Diese Benachrichtigungen werden, wenn sie auftreten, als Argument an das Skript übergeben killnot.sh
, das nichts tut.es sei dennDie identifizierende Zeichenfolge befindet sich im Text der Benachrichtigung. In diesem Fall wird sie beendet notify-osd
.
Durch geringfügige Änderungen am ersten Skript können Sie das Setup so einrichten, dass Benachrichtigungen für mehrere Schlüsselwörter gleichzeitig gesendet werden.
EDIT: Führen Sie den Befehl nur aus, bis die Blase erscheint
Wenndie Benachrichtigung wird erst nach der Anmeldung angezeigt. Wie Sie in Ihrer Frage erwähnen, können Sie die Lösung so „aufmotzen“, dass sie sich selbst beendet, nachdem sie die Update-Benachrichtigung abgefangen hat:
Wenn Sie die Skripte im Setup genau wie angegeben benannt haben, fügen Sie dem killnot.sh
Skript eine Zeile hinzu:
pkill -P "$( pgrep -f run_intercept )"
Das Skript sieht dann so aus:
#!/bin/bash
string=$1
match="update"
if [[ $string == *$match* ]]
then
pkill notify-osd
pkill -P "$( pgrep -f run_intercept )"
fi
Das Hauptskript run_intercept
wird dann beendet, nachdem es seine Aufgabe erledigt hat, und es wird kein Hintergrundskript mehr ausgeführt.
Näher an Sauberkeit kann man in dieser Situation meiner Meinung nach nicht herankommen.
Antwort3
Ich habe die Datei gefunden /etc/xdg/autostart/update-notifier.desktop
, die den update-notifier
Dienst automatisch startet. Wie Sie vielleicht wissen oder auch nicht, startet jede .desktop
Datei im Verzeichnis den Befehl, der als Parameter angegeben wird./etc/xdg/autostart
Exec=
Um es zu deaktivieren, müssen Sie nur Folgendes tun mv /etc/xdg/autostart/update-notifier.desktop /etc/xdg/autostart/update-notifier.desktop.bak
und voilà! Beim erneuten Aktivieren erfolgt das Gegenteil.
Antwort4
Fehler in der letzten Version der Gnome(Ubuntu)-Software behobenhttps://bugs.launchpad.net/ubuntu/+source/gnome-software/+bug/1592382