X11, comment détecter je suis la dernière fenêtre / application sur l'écran

StackOverflow https://stackoverflow.com/questions/2714253

  •  01-10-2019
  •  | 
  •  

Question

J'ai un écran x11 avec un windowmanager (malheureusement pas un moment spécifique, pourrait être TWM, dtwm, MWM, metacity ...), myApp et d'autres applications avec des fenêtres. Je veux fermer l'écran si les autres applications sont fermées et myApp est la seule avec des fenêtres sur l'écran. Je connais les fenêtres de myApp, mais comment puis-je distinguer entre les fenêtres du windowmanger et des autres applications.

Je suis actuellement vote avec xwininfo -tree -root -enfants et la compare à ce que je me attends, mais cela ne fonctionne que dans un environnement « bien défini ».

Il semble que beaucoup de ce qui précède windowmanager ne prennent pas en charge EWMH.

Était-ce utile?

La solution

Il ne va pas être une façon tout à fait non-aki.

Le ICCCM recommande d'identifier les fenêtres de toplevel (par opposition notamment aux cadres WM) en recherchant la propriété WM_STATE. Ainsi, vous pouvez distinguer les fenêtres d'application avec cela. Cependant, lorsque le WM rematerne la fenêtre dans un cadre, il va se difficile à trouver la fenêtre d'application dans la fenêtre de cadre. Il faudrait mettre en place un petit programme pour faire quelque chose comme xwininfo -tree mais seulement vérifier les fenêtres avec jeu WM_STATE.

Une solution relativement agréable serait d'utiliser libwnck, ou l'un des outils basés sur elle (wmctrl, tarte du diable). Cependant, cela nécessite un gestionnaire de fenêtres EWMH (qui comprend quoi que ce soit à distance moderne ou sain d'esprit, mais il semble que vous avez affaire à des choses curmudgeonly vraiment vieux). L'avantage de ces outils est qu'ils utilisent EWMH pour identifier les fenêtres d'application et même le type sémantique de ces fenêtres d'application (de dialogue, etc.).

, libwnck supprime également la nécessité de sondage, il peut juste surveiller les changements dans la liste des fenêtres de premier niveau.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top