J'ai un script bash qui déplace mes fenêtres de l'écran gauche à l'écran droit dans une configuration à double écran. Actuellement, la façon dont cela fonctionne est de parcourir les identifiants de fenêtre fournis par xdotool search --onlyvisible --maxdepth 2 --class ""
, puis de les déplacer vers la droite de la largeur de l'écran. Cela fonctionne déjà ... sauf si la fenêtre en question est agrandie ou minimisée.
Donc, ce qui est nécessaire, c'est un moyen de vérifier l'état actuel de la fenêtre. J'ai trouvé une réponse qui fournit le moyen d'ajouter et de supprimer ces bits, mais où est le moyen de vérifier s'ils sont déjà définis?
S'il n'est pas possible de le faire via xdotool , il devrait être possible de réutiliser l'identifiant de fenêtre fourni par la commande mentionnée ci-dessus.
devilspie
lequel est conçu pour faire exactement ce genre de travail de fenêtre. Donc, pas besoin de recoder, il suffit de configurerRéponses:
Récupérer des informations sur l'état de la fenêtre
Vous pouvez obtenir les informations (et bien plus) à partir de la commande:
Pour obtenir ce que vous recherchez spécifiquement:
La sortie ressemblera à:
sur une fenêtre maximisée (h + v) et minimisée en même temps, ou tout simplement
(ou pas de sortie du tout) si ce n'est pas le cas.
plus amusant
Bien sûr, en utilisant différents langages, vous pouvez utiliser Wnck , comme dans l'extrait de code python ci-dessous. (extrait du shuffler de fenêtre ). L'extrait génère une liste, affichant le nom de la fenêtre + ou
True
soitFalse
(minimisé).La sortie ressemble à:
NB
xprop
gérera à la fois les identifiants hexadécimaux (en sortie par exemplewmctrl
) et décimaux (en sortie par exemplexdotool
), par exemple soit utiliser:ou
Les méthodes ne fonctionneront pas sur Wayland!
la source
_NET_WM_STATE(ATOM)
n'apparaît pas, comme indiqué dans la réponse, avec une valeur vide. Au lieu de cela, il n'est pas du tout dans la sortie.