Comment get l'identifiant de la window de la stack de windows xdotool

J'ai besoin de l'identifiant de la window qui est active ou ciblée. J'essaie d'utiliser la command xdotool . Il y a une command:

 xdotool getactivewindow 

le résultat est enregistré dans la stack de windows. Je veux get widnow id à partir de cette stack de windows. Commander

 xdotool getactivewindow getwindowpid 

ne me satisfait pas. Je ne veux pas get d'identifiant de window par identifiant de process.

Je pense que xdotool getactivewindow est ce que vous voulez – l'avez-vous essayé?

Il imprime l'identifiant de la window (à partir de la stack de windows) s'il n'y a plus de sous-commands xdotool sur la command line.

Dans xdotool getactivewindow getwindowpid par exemple, getactivewindow place l'id sur la stack de windows, et getwindowpid utilise cet identifiant pour interroger le PID. Notez que l'exécution de cette command dans le terminal renvoie toujours l'ID de la window du terminal, car il est actif. Pour get l'identifiant d'une autre window, essayez de sleep 2s && xdotool getactivewindow et select la window d'intérêt dans les deux secondes.

Il y a une complication lors de l'utilisation de xdotool avec d'autres outils pour le traitement des windows:

Alors que la sortie xdotool utilise des nombres décimaux pour les id windwo, la plupart des autres outils utilisent des nombres hexadécimaux pour la sortie (ils supportent les deux pour l'input en général).

Par exemple, si vous trouvez une window avec xdotool getactivewindow , vous ne findez pas le résultat dans la sortie de xwininfo -root -tree , qui répertorie toutes les windows. Il doit d'abord être converti en un nombre hexadécimal:

 $ xdotool getactivewindow 69206716 $ printf 0x%x 69206716 0x42002bc $ xwininfo -root -tree | grep 0x42002bc 0x42002bc (has no name): ("konsole" "Konsole") 1154x781+0+0 +1289+498 

Conversion de décimal en hexadécimal:

 printf 0x%x 69206716 

Conversion hexadécimale en décimal:

 printf %i 0x42002bc