Myślę, że xdotool getactivewindowtego właśnie chcesz - próbowałeś?
Wyświetla identyfikator okna (ze stosu okien), jeśli w wierszu poleceń nie ma już żadnych komend xdotool.
Na xdotool getactivewindow getwindowpidprzykład getactivewindowumieszcza identyfikator na stosie okien i getwindowpidużywa tego identyfikatora do zapytania o PID. Pamiętaj, że uruchomienie tej komendy w terminalu zawsze zwróci identyfikator okna terminala, ponieważ jest ona aktywna. Aby uzyskać identyfikator z innego okna, spróbuj sleep 2s && xdotool getactivewindowwybrać okno zainteresowania w ciągu dwóch sekund.
Korzystanie xdotoolz innych narzędzi do obsługi okien jest komplikowane :
Podczas gdy xdotooldane wyjściowe używają liczb dziesiętnych dla identyfikatorów windwo, większość innych narzędzi używa liczb szesnastkowych jako danych wyjściowych (zwykle obsługują oba dane wejściowe).
Na przykład, jeśli znajdziesz okno z xdotool getactivewindow, nie znajdziesz wyniku na wyjściu xwininfo -root -tree, który zawiera listę wszystkich okien. Najpierw należy go przekonwertować na liczbę szesnastkową:
Próbowałem xdotool getactivewindowpolecenia i problem polega na tym, że nie wyświetla wyniku w terminalu. Zapisuje wynik na stosie okien. To polecenie wypisuje pewną liczbę, ale nie jest to identyfikator okna (np. 35651588)
Mariusz
Jak myślisz, dlaczego 35651588 nie jest identyfikatorem okna?
Volker Siegel,
Tak, myślę, że 35651588 nie jest identyfikatorem okna. Możesz zobaczyć identyfikator systemu Windows za pomocą polecenia xwininfo, np. xwininfo -root -tree- to polecenie drukuje wszystkie okna, a okna mają inne typy numeracji.
Mariusz
1
xwininfopokazuje identyfikator okna jako liczby szesnastkowe, a xdotool pokazuje liczby dziesiętne, ale jest taki sam.
xdotool getactivewindow
polecenia i problem polega na tym, że nie wyświetla wyniku w terminalu. Zapisuje wynik na stosie okien. To polecenie wypisuje pewną liczbę, ale nie jest to identyfikator okna (np. 35651588)xwininfo -root -tree
- to polecenie drukuje wszystkie okna, a okna mają inne typy numeracji.xwininfo
pokazuje identyfikator okna jako liczby szesnastkowe, a xdotool pokazuje liczby dziesiętne, ale jest taki sam.xwininfo -root -tree | grep 2200004 0x2200004 "user@host:~": ("gnome-terminal" "Gnome-terminal") 1680x974+0+26 +0+51
To polecenie działa dla mnie
Wersja xdotool 3.20160805.1
źródło
xdotool getactivewindow key F5
powinien dać ten sam wynik