Creo que xdotool getactivewindow
es lo que quieres, ¿lo intentaste?
Imprime la identificación de la ventana (de la pila de la ventana) si no hay más subcomandos de xdotool en la línea de comandos.
Por xdotool getactivewindow getwindowpid
ejemplo, getactivewindow
coloca la identificación en la pila de la ventana y getwindowpid
usa esta identificación para consultar el PID. Tenga en cuenta que ejecutar ese comando en la terminal siempre devolverá la ID de la ventana de la terminal, porque está activa. Para obtener la ID de otra ventana, intente sleep 2s && xdotool getactivewindow
y seleccione la ventana de interés en el lapso de dos segundos.
Hay una complicación cuando se usa xdotool
con otras herramientas para el manejo de ventanas:
Mientras que la xdotool
salida usa números decimales para los identificadores de viento, la mayoría de las otras herramientas usan números hexadecimales para la salida (generalmente admiten ambas para la entrada).
Por ejemplo, si encuentra una ventana con xdotool getactivewindow
, no encontrará el resultado en la salida de xwininfo -root -tree
, que enumera todas las ventanas. Primero debe convertirse a un número hexadecimal:
$ xdotool getactivewindow
69206716
$ printf 0x%x 69206716
0x42002bc
$ xwininfo -root -tree | grep 0x42002bc
0x42002bc (has no name): ("konsole" "Konsole") 1154x781+0+0 +1289+498
Convertir decimal a hexadecimal:
printf 0x%x 69206716
Convertir hexadecimal a decimal:
printf %i 0x42002bc
xdotool getactivewindow
comando y el problema es que no imprime el resultado en la terminal. Guarda el resultado en la pila de la ventana. Este comando imprime algún número, pero no es la identificación de la ventana (por ejemplo, 35651588)