Saya pikir xdotool getactivewindow
apa yang Anda inginkan - apakah Anda mencobanya?
Ia mencetak id jendela (dari tumpukan jendela) jika tidak ada lagi sub perintah xdotool pada baris perintah.
Sebagai xdotool getactivewindow getwindowpid
contoh, getactivewindow
letakkan id di tumpukan jendela, dan getwindowpid
gunakan id ini untuk menanyakan PID. Perhatikan bahwa menjalankan perintah itu di terminal akan selalu mengembalikan ID dari jendela terminal, karena itu aktif. Untuk mendapatkan ID dari jendela lain, coba sleep 2s && xdotool getactivewindow
dan pilih jendela yang diinginkan dalam rentang waktu dua detik.
Ada komplikasi saat menggunakan xdotool
dengan alat lain untuk penanganan jendela:
Sementara xdotool
output menggunakan angka desimal untuk windwo id, sebagian besar alat lain menggunakan angka heksadesimal untuk output (mereka mendukung keduanya untuk input biasanya).
Misalnya, jika Anda menemukan jendela dengan xdotool getactivewindow
, Anda tidak akan menemukan hasil dalam output xwininfo -root -tree
, yang mencantumkan semua jendela. Itu perlu dikonversi ke angka heksadesimal terlebih dahulu:
$ xdotool getactivewindow
69206716
$ printf 0x%x 69206716
0x42002bc
$ xwininfo -root -tree | grep 0x42002bc
0x42002bc (has no name): ("konsole" "Konsole") 1154x781+0+0 +1289+498
Mengonversi desimal ke heksadesimal:
printf 0x%x 69206716
Mengubah heksadesimal menjadi desimal:
printf %i 0x42002bc
xdotool getactivewindow
perintah dan masalahnya adalah tidak mencetak hasil di terminal. Ini menyimpan hasil ke tumpukan jendela. Perintah ini mencetak beberapa nomor tetapi ini bukan id jendela (mis. 35651588)