web-dev-qa-db-fra.com

Boîtes de dialogue d'alerte fiables depuis le shell

J'aimerais qu'un message apparaisse en réponse à divers événements du système, principalement afin de pouvoir me définir des rappels à partir d'une session Shell. Il y a quelques façons de le faire; zenity semble être le plus raffiné. Cependant, j'ai trouvé au moins deux problèmes avec la zénité:

  1. Les messages n'apparaissent pas sur tous les espaces de travail. J'ai essayé d'utiliser l'option gtk --screen pour contrôler cela, mais ils apparaissent tout de même dans l'espace de travail actuel. Donc, si je change d'espace de travail au fur et à mesure que le message apparaît, je ne le verrai pas.

  2. Les messages n'apparaissent pas au-dessus de toutes les autres fenêtres. Plus précisément, si j'utilise guake, un nouveau message zenity apparaîtra sous la fenêtre guake et je ne pourrai pas le voir.

J'ai essayé quelques autres applications il y a quelque temps. gmessage et xmessage ont présenté un problème 1 ; gmessage présentait également un problème 2 . J'ai trouvé que kalarm, qui peut être scripté à partir de la ligne de commande, fonctionnait de manière acceptable, mais j'essaie d'éviter d'exécuter la pile KDE si possible, et je préférerais quelque chose de léger avec la polyvalence de zenity .

Il semble qu'il soit possible d'arranger la résolution de ces problèmes en définissant WM_CLASS, mais je suis un peu au-dessus de ma tête là-bas. Il peut également être possible d'apporter des modifications à la fenêtre après son lancement avec un script, mais encore une fois, je ne sais pas où chercher des ressources à ce sujet.

mise à jour

Comme suggéré par @geirha, j'ai cherché à utiliser notify-send (via le package libnotify-bin , qui semble être un client pour notify-osd ). Il y a de nombreux problèmes avec ce framework, pour lesquels j'ai déposé apebugreports . J'espère que devilspie peut fournir des solutions à certains ou à tous ces problèmes, ou qu'il existe un autre système de notification qui fonctionne de manière plus fiable.

6
intuited

Peut-être que vous voulez notify-send?

Sinon, il y a devilspie , qui vous permet de dire des choses comme "toutes les fenêtres avec ce nom (ou de cette classe ou avec ce rôle), seront visibles sur tous les espaces de travail".

3
geirha