Eu acho que xdotool getactivewindow
é o que você quer - você tentou?
Imprime o id da janela (da pilha de janelas) se não houver mais subcomandos xdotool na linha de comando.
Em xdotool getactivewindow getwindowpid
, por exemplo, getactivewindow
coloca o id na pilha da janela e getwindowpid
usa esse id para consultar o PID. Observe que executar esse comando no terminal sempre retornará o ID da janela do terminal, porque ele está ativo. Para obter o ID de outra janela, tente sleep 2s && xdotool getactivewindow
e selecione a janela de interesse no intervalo de tempo de dois segundos.
Há uma complicação ao usar xdotool
com outras ferramentas para manipulação de janelas:
Enquanto a saída xdotool
usa números decimais para identificadores de windwo, a maioria das outras ferramentas usam números hexadecimais para a saída (eles suportam tanto para entrada normalmente).
Por exemplo, se você encontrar uma janela com xdotool getactivewindow
, não encontrará o resultado na saída de xwininfo -root -tree
, que lista todas as janelas. Ele precisa ser convertido para um número hexadecimal primeiro:
$ xdotool getactivewindow
69206716
$ printf 0x%x 69206716
0x42002bc
$ xwininfo -root -tree | grep 0x42002bc
0x42002bc (has no name): ("konsole" "Konsole") 1154x781+0+0 +1289+498
Convertendo decimal em hexadecimal:
printf 0x%x 69206716
Convertendo hexadecimal em decimal:
printf %i 0x42002bc