Obtener ID de ventana activa en hexadecimal, no en decimal

Obtener ID de ventana activa en hexadecimal, no en decimal

¿Cómo obtener el ID de la ventana de enfoque (activa) en hexadecimal?

Respuesta1

Prueba este truco:

wmctrl -lp | grep $(xprop -root | grep _NET_ACTIVE_WINDOW | head -1 | \
    awk '{print $5}' | sed 's/,//' | sed 's/^0x/0x0/')

Por ejemplo:

$ wmctrl -lp | grep $(xprop -root | grep _NET_ACTIVE_WINDOW | head -1 | \
>     awk '{print $5}' | sed 's/,//' | sed 's/^0x/0x0/')

0x07600006  0 19051  maythuxPC Gnome Terminal

0x07600006 es el hexadecimal de la ventana activa que es la terminal en mi caso.

Para estar seguros, pongámoslo en decimal:

$ xdotool getactivewindow 
123731974

Ahora convierta de decimal a hexadecimal:

$ printf 0x%x 123731974
0x7600006

Es lo mismo.

Respuesta2

Le da 3 segundos para cambiar el foco de la ventana e
imprime luego el PID hexadecimal:

~$ sleep 3; printf 0x%x $(xdotool getactivewindow getwindowpid)

Respuesta3

Utilice printf para convertir decimal a hexadecimal. P.ej. para obtener la identificación de la ventana activa en uso hexadecimal

xdotool getactivewindow | xargs -I{} printf '%x\n' {}

información relacionada