J'ai mon système configuré de telle sorte que lorsque je reçois de nouveaux messages, une bulle de notification apparaît sur mon écran. C'est parfois pratique et distrayant à d'autres moments. Sans avoir à désinstaller l'intégration gmail que j'utilise, existe-t-il un moyen de basculer de manière centralisée sur l' affichage de certains types de notifications?
En d'autres termes, je recherche une application (ou une API) qui me permet soit de voir une liste d'applications "enregistrées" qui utilisent le service de notification, et de les basculer comme activées / désactivées. Ou, quelque chose qui me permet de créer une ou plusieurs expressions régulières qui peuvent être utilisées pour faire correspondre le nom de l'application source ou le contenu de la bulle de notification, et si une correspondance se produit, pour bloquer la notification.
la source
Réponses:
Vous pouvez peut-être filtrer cela au niveau du bus D, mais cela ressemble à beaucoup de travail. Consultez d'abord ce post pour avoir un aperçu du fonctionnement de l'OSD
Démarrez dbus-monitor avant d'envoyer le run 'notify-send' sur une console séparée.
notify-osd vit sur dbus
mais il n'y a pas de contraintes supplémentaires pour ce service dans /etc/dbus-1/system.d
Ainsi, vous pourriez être en mesure de créer un fichier de configuration qui peut filtrer les événements de notification en fonction de leur source et obtenir le contrôle que vous recherchez. C'est le mieux que je puisse faire sans creuser le problème et la spécification dbus. J'espère que cela aide, ce que vous recherchez devrait être plus facile à configurer pour commencer.
la source
Ce n'est pas vraiment trop mal, du moins pour une solution générique brute.
Voici une copie des détails de ma réponse au poste de l'an dernier (septembre 2012) dans
Comment désactiver la notification du gestionnaire de réseau .
Remplacez
string "NetworkManager"
par le RE souhaité pour déterminer le blocage.Pour avoir une idée de la correspondance du modèle RE à rechercher pour l'exécution:
dbus-monitor "interface='org.freedesktop.Notifications'"
et regardez la sortie pendant que les notifications apparaissent.
c'est à dire. pour supprimer
notify-send
également les messages, utilisezgrep
plutôt cette ligne:Avertissement :
killall notify-osd
est non discriminatoire et efface complètement la pile de notification de tous les messages en attente, que l'agent notifiant soitNetworkManager
ounotify-send
non.Une solution «honnête» doit tenir compte des conditions de concurrence possibles entre la détermination d'une purge de notification et sa réalisation, une autre notification doit apparaître et ne pas être purgée avec le reste.
De plus, si des notifications sont en attente lorsque la personne à bloquer bloquée arrive, elles seront toutes purgées. Cette situation peut au moins être résolue en effectuant une copie des
dbus
notifications en attente, puis en réémettant celles souhaitées avecnotify-send
après la purge.C'est un peu de travail à forte intensité de main d'œuvre!
Idéalement, l'utilisation directe de dbus
cibler uniquement les notifications souhaitées, ce n'est malheureusement pas évident ... mais ...
Une autre réponse:
org.freedesktop.Notifications.CloseNotification (uint id) peut-il être déclenché et appelé via DBus?
montre comment utiliser
[1]
, au moins avecnotify-send
, mais malheureusement pas pour notifier des aps arbitraires. bien que quelques aps. ont des interfaces personnalisées pour contrôler les notifications contextuelles.références croisées:
la source