J'ai besoin de trouver la position de la fenêtre et la taille, mais je ne peux pas comprendre comment. Par exemple, si j'essaie:
#!/bin/bash id=$1 wmiface framePosition $id wmiface frameSize $id
3 Réponses :
Vous utilisez probablement un gestionnaire de fenêtres reparent et à cause de cette fenêtre d'identification a zéro x et y. Vérifiez les coordonnées de la fenêtre mère (qui est le cadre du gestionnaire de fenêtres) p>
J'utilise Kwin comme responsable de la fenêtre. Mais comment puis-je obtenir une fenêtre parent?
Avant de demander comment trouver la fenêtre des parents, j'ai googlé et vu cette page. Malheureusement, il s'agit d'environ C xlib (pas de Python XLib), de sorte que cela n'aide pas. Avez-vous une idée de la fenêtre parent avec Python?
parent = id.query_tree (). Parent code>
Merci beaucoup pour votre aide! La ligne suivante m'a permis d'obtenir une géométrie de cadre: "id.query_tree (). Parent.Quéry_tree (). Parent.get_gometry ()". WM Cadre est grand-parent de la fenêtre du client (au moins à Kwin).
Je suggère d'être une marche indépendante WM pour racine et calculer la relative x, y à chaque étape
Ok, merci encore. J'ai mis en œuvre votre suggestion. Pour rendre cette réponse plus utile aux autres, j'ai écrit un script très court comme exemple: print_frame_geometry_of_all_windows.py a>
Liss a posté la solution suivante comme un commentaire < / a>: Je le copie ici parce que Les réponses doivent contenir la réponse réelle et pour empêcher link pourriture . p> p>
Donc, cadre () code> ne fait que renvoyer l'ancêtre secondaire du client transmis? Je ne pense pas que cela accomplit la suggestion de marcher sur l'arbre à la racine et de calculer le x, y à chaque étape ...
Voici ce que je suis venu avec cela semble bien fonctionner: exemple complet ici . p> p>
Grâce à la réponse de Andrey Sidorov j'ai résolu mon problème. Voici un script très simple qui démontre la solution: print_frame_gometry_of_all_windows.py .