Mon système est configuré de telle sorte que lorsque je reçois un nouveau courrier, une bulle de notification apparaît sur mon écran. C'est pratique à certains moments et distrayant à d'autres moments. Sans avoir à désinstaller l'intégration gmail que j'utilise, existe-t-il un moyen de centralement de basculer l'affichage de certains types de notifications?
En d'autres termes, je recherche une application (ou une API) qui me permet de voir la liste des applications "enregistrées" qui utilisent le service de notification et de les activer/désactiver. Ou quelque chose qui me permet de créer une ou plusieurs expressions régulières pouvant être utilisées pour faire correspondre le nom source-application-nom ou notification-bubble-content et, le cas échéant, pour bloquer la notification.
... mais cela ressemble à beaucoup de travail ...
Ce n'est pas trop grave, du moins pour une solution générique brute.
Voici une copie des détails de ma réponse au message de l'année dernière (septembre 2012) dans
Comment désactiver la notification du gestionnaire de résea .
dbus-monitor "interface='org.freedesktop.Notifications'" \
| grep --line-buffered 'string "NetworkManager"' \
| sed -u -e 's/.*/killall notify-osd/g' \
| bash
Remplacez string "NetworkManager"
par le RE souhaité pour déterminer le blocage.
Pour avoir une idée du type de correspondance de motif RE à rechercher, exécutez:dbus-monitor "interface='org.freedesktop.Notifications'"
et regardez la sortie pendant que les notifications apparaissent.
c'est à dire. pour supprimer également les messages notify-send
, utilisez plutôt cette ligne grep
:
| grep --line-buffered 'string "NetworkManager"\|string "notify-send"' \
Mise en garde :killall notify-osd
ne fait aucune discrimination et efface complètement la pile de notifications de tous les messages en attente, que NetworkManager
ou notify-send
soit l'agent de notification.
Une solution "honnête" doit prendre en compte d'éventuelles conditions de concurrence lorsque, entre la détermination d'une purge de notification et son exécution, se produit une autre notification qui devrait apparaître et ne pas être purgée avec le reste.
De plus, si des notifications sont en attente lors de la réception de la demande à bloquer, elles seront toutes purgées. Cette situation peut au moins être résolue en faisant une copie des notifications dbus
en attente, puis relancez les notifications souhaitées avec notify-send
après la purge.
C'est un peu de travail manuel laborieux!
Idéalement, l’utilisation directe de
method void org.freedesktop.Notifications.CloseNotification(uint id) [1]
cibler spécifiquement les notifications souhaitées n’est malheureusement pas évident ... cependant ...
Une autre réponse
L'org.freedesktop.Notifications.CloseNotification (uint id) peut-il être déclenché et appelé via DBus?
montre comment utiliser [1]
, au moins avec notify-send
, mais malheureusement pas pour la notification arbitraire des fichiers APS. bien que certains aps. avoir des interfaces personnalisées pour contrôler les notifications contextuelles.
croix réf .:
Vous pourrez peut-être filtrer cela au niveau d-bus, mais cela demande beaucoup de travail. Commencez par consulter cet article pour en savoir plus sur le fonctionnement d'osd
Lancez dbus-monitor avant d’envoyer l’exécution "notify-send" sur une console séparée.
appel de méthode sender =: 1.2450 -> dest = org.freedesktop.DBus serial = 5 chemin =/org/freedesktop/DBus; interface = org.freedesktop.DBus; member = GetNameOwner chaîne "org.freedesktop.Notifications" méthode appel sender =: 1.2450 -> dest =: 1.41 serial = 6 chemin =/org/freedesktop/Notifications; interface = org.freedesktop.Notifications; member = GetServerInformation méthode return sender =: 1.41 -> dest =: 1.2450 reply_serial = 6 chaîne "notify-osd" chaîne "Canonical Ltd" chaîne "1.0" Chaîne de caractères "1.1" Méthode appel expéditeur =: 1.2450 -> dest =: 1.41 série = 7 chemin =/org/freedesktop/Notifications; interface = org.freedesktop.Notifications; membre = Notifier chaîne "notify-send" uint32 0 chaîne "/usr/share/pixmaps/debian-logo.png" chaîne" Mon titre " string" Un peu de texte " array array entrée dict ( string" urgence " Variante octet 1 ) int32 -1
notify-osd vit sur dbus
dpkg -L notify-osd /usr/share/dbus-1/services/org.freedesktop.Notifications.service
mais il n'y a pas de contrainte supplémentaire pour ce service dans /etc/dbus-1/system.d
Vous pourrez donc créer un fichier de configuration capable de filtrer les événements de notification en fonction de leur source et d’obtenir le contrôle souhaité. C’est le mieux que je puisse faire sans entrer dans les détails du problème et de la spécification dbus. J'espère que cela aide, ce que vous cherchez devrait être plus facile à configurer pour commencer.