Xdotool Window Stack'ten pencere kimliği nasıl alınır


12

Aktif veya odaklanmış pencerenin kimliğine ihtiyacım var. xdotoolKomutu kullanmaya çalışıyorum . Komut var:

xdotool getactivewindow

sonuç pencere yığınına kaydedilir. Bu pencere yığınından widnow kimliği almak istiyorum. komuta

xdotool getactivewindow getwindowpid

beni tatmin etmiyor. İşlem kimliği ile pencere kimliği almak istemiyorum.

Yanıtlar:


11

Bence xdotool getactivewindowne istiyorsun - denedin mi?

Komut satırında başka xdotool alt komutları yoksa pencere kimliğini (pencere yığınından) yazdırır.

Olarak xdotool getactivewindow getwindowpid, örneğin, getactivewindowcam yığın id koyar ve getwindowpidPID sorgulamak için bu kimliği kullanır. Terminalde bu komutu çalıştırmanın her zaman terminal penceresinin kimliğini döndüreceğini unutmayın, çünkü aktiftir. Kimliği başka bir pencereden almak sleep 2s && xdotool getactivewindowiçin iki saniye içinde ilgili pencereyi seçmeye çalışın .


xdotoolPencere kullanımı için diğer araçlarla kullanıldığında bir komplikasyon var :

İken xdotoolçıkış kullanımları windwo kimlikleri için sayıyı ondalık, diğer birçok araçları kullanmak onaltılık (genellikle girişi için ikisini de destekler) çıkışı için numaralar.

Örneğin, ile bir pencere xdotool getactivewindowbulursanız, sonucunun xwininfo -root -treetüm pencereleri listeleyen sonucunu bulamazsınız . Önce onaltılık sayıya dönüştürülmesi gerekir:

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


Ondalık sayıyı onaltılık biçime dönüştürme:

printf 0x%x 69206716

Onaltılıdan ondalığa dönüştürme:

printf %i 0x42002bc

xdotool getactivewindowKomut denedim ve sorun terminalde sonuç yazdırmıyor olmasıdır. Sonucu pencere yığınına kaydeder. Bu komut bir sayı yazdırıyor ancak pencere kimliği değil (örn. 35651588)
Mariusz

Neden 35651588 pencere kimliği değil?
Volker Siegel

Evet, 35651588'in pencere kimliği olmadığını düşünüyorum. Windows kimliğini xwininfo komutuyla görebilirsiniz, örneğin xwininfo -root -tree- bu komut tüm pencereleri yazdırır ve pencerelerin başka bir numaralandırma türü vardır.
Mariusz

1
xwininfopencere kimliğini onaltılık sayılar olarak gösterir ve xdotool ondalık sayılar gösterir, ancak aynıdır.
Volker Siegel

Haklısın. 35651588 = 0x2200004. xwininfo -root -tree | grep 2200004 0x2200004 "user@host:~": ("gnome-terminal" "Gnome-terminal") 1680x974+0+26 +0+51
Mariusz

1

Bu komut benim için çalışıyor

xdotool key --window "$(xdotool getactivewindow)" F5

xdotool sürüm 3.20160805.1


xdotool getactivewindow key F5aynı sonucu
üretmelidir
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.