Narzędzie linii komend linuxa wmctrl
pozwala między innymi wyświetlić listę wszystkich okien lub wszystkich pulpitów. W trybie wyświetlania na pulpicie bieżący pulpit jest oznaczony gwiazdką.
Potrzebuję narzędzia, które może ustalić tytuł aktywnego okna. Niestety wmctrl
nie ma pomocnika, który to robi - pomimo tego, że wie, które okno jest obecnie aktywne (patrz :ACTIVE:
znacznik).
Czy istnieje inne narzędzie wiersza polecenia, które może podać identyfikator okna i / lub tytuł bieżącego okna?
linux
command-line
xorg
Dave Vogt
źródło
źródło
wmctrl
, możesz::wmctrl -i -r `xdotool getwindowfocus` -e 0,10,10,-1,-1
gdzie-i
mówi wmctrl, aby oczekiwał identyfikatora okna zamiast tytułu okna.Jest to bardziej bezpośrednie i dotyczy tylko
xprop
icut
:Te polecenia to tylko wyodrębnienie właściwości z okna głównego i okna aplikacji, ale na żądanie Lorenza von Matterhorna:
Pierwszy,
Wyodrębnia
_NET_ACTIVE_WINDOW
właściwość z katalogu głównego, co daje XID aktywnego okna.32x '\t$0'
Mówixprop
formatować dane wyjściowe w sposób, którycut
można łatwo przetworzyć później.Następnie wyodrębnij tylko XID z wyjścia za pomocą
cut -f 2
Następnie przekaż XID jako parametr do
Który wypisuje nazwę tego okna.
źródło
Nie ma krótkiej odpowiedzi ani rozwiązania.
wynik:
W użyciu:
źródło
Oto, co zadziałało dla mnie:
xprop -id $(xprop -root _NET_ACTIVE_WINDOW | cut -d ' ' -f 5) WM_NAME
Daje:
WM_NAME(STRING) = "~"
Więc może zrobiłbyś trochę brzydoty, aby uzyskać nazwę samemu:
xprop -id $(xprop -root _NET_ACTIVE_WINDOW | cut -d ' ' -f 5) WM_NAME | sed -e 's/.*"\(.*\)".*/\1/'
Daje:
~
Która jest moją aktualnie skoncentrowaną nazwą okna, sama w sobie.
Lub unikaj sed z nieco mniej brzydkimi:
xprop -id $(xprop -root _NET_ACTIVE_WINDOW | cut -d ' ' -f 5) WM_NAME | awk -F '"' '{print $2}'
źródło
xprop -id $(xprop -root _NET_ACTIVE_WINDOW | cut -d ' ' -f 5) WM_NAME | cut -d '"' -f 2
Stosunkowo krótki i poprawnie obsługuje nazwy okien zawierające cytaty:
źródło