§ Posté le 26/12/2014 à 20h 56m 28
Plusieurs applications peuvent avoir besoin de gérer des icônes dans le System Tray, des notifications, ou une intégration propre au lanceur. Depuis le dernier commit (qui remonte à mardi, mais je n'ai pas eu le temps de rédiger cette documentation plus tôt), le dépôt contient un module spécialisé, baptisé « monitor », qui sert à gérer ces différents éléments.
Chaque « moniteur » créé grâce à ce module est donc lié à une notification, ainsi qu'à une ou plusieurs icônes du Tray. Il suffit à l'application de donner un identifiant à l'information concernée (None
fera l'affaire s'il n'y a qu'une seule info gérée) et de renseigner les différents aspects : titre, icône, description, statut…
Le moniteur gère ensuite automatiquement la chose, en modifiant les icônes concernées, et demandant à la notification de s'afficher dans le cas où ses informations auraient changées.
La caractéristique principale de ces moniteurs (qui n'empêche pas de gérer notification et icônes différemment si besoin) est la capacité de diffuser également les dernières informations vers un presse-papier spécialisé, de telle sorte qu'une autre application puisse récupérer et afficher ces informations.
L'application principale bénéficiant de ce système est le lanceur, qui permet ainsi de modifier le fonctionnement de ses boutons selon la situation (voir le sujet dédié). Mais le panel du gestionnaire de presse-papier peut également afficher ces informations.
Un certain nombre d'options en lignes de commandes (pouvant être appelées après lancement, grâce aux instances uniques) permettent de contrôler ces moniteurs :
-
--clip=_presse_papier
permet de déterminer un presse-papier supplémentaire vers lequel envoyer les informations. -
--unclip=_presse_papier
permet au contraire de cesser l'envoi des infos vers le presse-papier indiqué. -
--notif
permet d'activer les notifications, si ce n'était pas encore le cas. -
--no-notif
permet de désactiver les notifications, si elles n'avaient rien à faire là. -
--tray=option
permet de changer le comportement des icônes du Tray (voir ci-dessous) -
--size=TAILLE
permet de régler la taille des images qui seront envoyées sur le presse-papier (il peut y avoir une taille différente par presse-papier). -
--focus=ID
permet de réafficher les informations liées à l'identifiant donné.
Les options pour les icônes sont les suivantes :
-
never
: pas d'icônes. Du tout. -
always
: toutes les icônes sont affichées en permanence. -
dynamic
: les icônes ne sont affichées que si le truc concerné est marqué comme actif. -
focused
: seule l'icône des dernières infos est affichée, quel que soit son état. -
active
: seule l'icône des dernières infos est affichée, et seulement si le truc est marqué comme actif.
Ce module permet, du coup, de créer facilement des composants intéragissant avec Touhy : vous en avez un exemple ici