Uważam, że powiązaną stroną podręcznika jest XKillClient . Możesz użyć xdotool
do symulacji kliknięcia przycisku zamknięcia z podobnego terminala.
Przykład
Zakładając, że mam gnome-terminal
otwarty, a jego nazwa to „saml @ grinchy: / home”.
Uzyskaj identyfikator okna
$ xdotool search --name "saml@grinchy:/home"
96488188
Wyślij to Alt+F4
$ xdotool windowactivate --sync 96488188 key --clearmodifiers \
--delay 100 alt+F4
Możesz je połączyć, osadzając pierwsze polecenie w drugim:
$ xdotool windowactivate --sync $( ...1st command...) key --clearmodifiers \
--delay 100 alt+F4
Możesz uratować siebie, pozwalając xdotool
robić obie rzeczy jednocześnie:
$ xdotool search --name "saml@grinchy:~" key alt+f4
Globalnie
Możesz dostosować to, co podałem, aby uruchamiać go w systemie Windows o tej samej nazwie:
$ xdotool search --name "saml@grinchy:~"
96488779
96468996
Lub w systemie Windows według innych atrybutów. Możesz użyć, xwininfo
aby dowiedzieć się więcej o danym oknie. Uruchom go, a następnie po prostu kliknij okno zainteresowania:
$ xwininfo
xwininfo: Please select the window about which you
would like information by clicking the
mouse in that window.
xwininfo: Window id: 0x5c04d4b "saml@grinchy:~"
Absolute upper-left X: 14
Absolute upper-left Y: 74
Relative upper-left X: 14
Relative upper-left Y: 74
Width: 941
Height: 361
Depth: 32
Visual: 0x62
Visual Class: TrueColor
Border width: 0
Class: InputOutput
Colormap: 0x5c00003 (not installed)
Bit Gravity State: NorthWestGravity
Window Gravity State: NorthWestGravity
Backing Store State: NotUseful
Save Under State: no
Map State: IsViewable
Override Redirect State: no
Corners: +14+74 -485+74 -485-465 +14-465
-geometry 132x24+14+74
Inne przydatne narzędzia do obsługi okien X11 to xdpyinfo
& xprop
. xdpyinfo
można użyć do uzyskania informacji o serwerze X. Aby dowiedzieć się, które okno jest aktywne:
$ xdpyinfo |grep focus
focus: window 0x5c00005, revert to Parent
xprop
i xwininfo
może -id
przełączyć się, abyś mógł podać identyfikator okna, który Cię interesuje, zamiast go klikać:
$ xprop -id 0x5c00001|grep -i class
WM_CLASS(STRING) = "gnome-terminal", "Gnome-terminal"
Bibliografia
xdotool search --name "saml@grinchy:~" key alt+f4
, problem polega na tym, że nie znalazłem sposobu na zrobienie tego z kilkoma oknami o tej samej nazwie ...wmctrl -r :ACTIVE: -N "MyWindowTitle
key alt+F4
do wszystkich okien (jeśli można zmienić rozmiar, dlaczego nie Alt + F4), ale bez powodzenia. I dzięki: D.xdotool search --name "gedit|terminal|office" key --window %@ alt+F4
poszuka każdego okna, które ma nazwę gedit, terminal lub biuro w nazwie tytułu i wyśle polecenie alt + F4.Odkryłem, że
xdotool
jest niestabilny / buggy, czasem zamyka okno na pierwszym planie zamiast tego, które powinno być zamknięte. Wydaje się, że wynika to ze sposobu, w jaki klucze są wysyłane po przeniesieniu okna na pierwszy plan zamiast bezpośredniego wysyłania zdarzeń okna, i jest to bardzo denerwujący problem. Sugeruję użyciewmctrl
, które bezpośrednio zamyka okno bez wysyłania naciśnięć klawiszy.Możesz zamknąć okno bezpośrednio, dopasowując nazwę, np. Oba zamkną okno „Untitled Document 1 - gedit”:
Możesz użyć tej
-F
opcji, aby rozważyć tylko dokładne dopasowania:Lub możesz podać identyfikator bezpośrednio:
Więcej przykładów użycia / dokumentacji można znaleźć tutaj .
Jedną z rzeczy, które uważam za bardzo przydatne, jest
xdotool
możliwość oczekiwania na wynik przy użyciu--sync
argumentu. Łączenie dwóch w jednym poleceniu odbywa się w następujący sposób:Jeśli korzystasz z komputera Mac, prawdopodobnie potrzebujesz
-I{}
parametru:Jeśli chcesz obsługiwać wiele okien, powinieneś kazać
xargs
wywołaćwmctrl
najwyżej 1 argument za każdym razem z tą-n
opcją.wmctrl
nie obsługuje jawnie wielu okien jako argumentów:Będzie to czekać, aż będzie co najmniej 1 takie okno, a następnie zamknie je wszystkie.
źródło
top
Oczywiście tylko wtedy, gdy program działa w terminalu (np. ), Tak samo jak po kliknięciu przycisku zamykania.xdotool search --sync --name "Software Updater" | xargs wmctrl -i -c
Trusty i uruchomiłem narzędzie do aktualizacji oprogramowania. Odtąd Software Updater nie wyświetla się poprawnie. Wyświetla się tylko pasek tytułu. Ponowna instalacja menedżera aktualizacji nie pomogła.pkill (1) powinien być tym, czego potrzebujesz.
źródło
--signal
przełącznika nie różni się odkill
lubkillall
. Oczekuję, że chcesz zapisać? alarm.