Я полагаю, что соответствующая страница руководства - XKillClient . Вы можете использовать, xdotool
чтобы имитировать нажатие кнопки закрытия из терминала следующим образом.
пример
Предполагая, что у меня gnome-terminal
открыт, и его зовут "saml @ grinchy: / home".
Получить идентификатор окна
$ xdotool search --name "saml@grinchy:/home"
96488188
Отправить Alt+F4
$ xdotool windowactivate --sync 96488188 key --clearmodifiers \
--delay 100 alt+F4
Вы можете собрать их вместе, вставив первую команду во вторую:
$ xdotool windowactivate --sync $( ...1st command...) key --clearmodifiers \
--delay 100 alt+F4
Вы можете спасти себя, позволив xdotool
сделать оба одновременно:
$ xdotool search --name "saml@grinchy:~" key alt+f4
глобально
Вы можете адаптировать то, что я предоставил, чтобы запустить его на окнах с тем же именем:
$ xdotool search --name "saml@grinchy:~"
96488779
96468996
Или на окнах по другим атрибутам. Вы можете использовать, xwininfo
чтобы узнать больше о конкретном окне. Запустите его, а затем просто нажмите на интересующее вас окно:
$ 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
Другими полезными инструментами при работе с окнами X11 являются xdpyinfo
& xprop
. xdpyinfo
может быть использован, чтобы узнать информацию о X-сервере. Таким образом, вы можете выяснить, какое окно имеет фокус:
$ xdpyinfo |grep focus
focus: window 0x5c00005, revert to Parent
xprop
и xwininfo
может -id
переключиться, чтобы вы могли предоставить им интересующий вас идентификатор окна вместо того, чтобы нажимать на него:
$ xprop -id 0x5c00001|grep -i class
WM_CLASS(STRING) = "gnome-terminal", "Gnome-terminal"
Ссылки
xdotool search --name "saml@grinchy:~" key alt+f4
проблему, проблема в том, что я не нашел, как это сделать с несколькими окнами с одинаковыми именами ...wmctrl -r :ACTIVE: -N "MyWindowTitle
key alt+F4
всех окон (если можно изменить размер, почему бы не alt + F4), но без удачи. И спасибо: D.xdotool search --name "gedit|terminal|office" key --window %@ alt+F4
поищу любое окно, в названии которого есть gedit, терминал или офис, и отправлю команду alt + F4.Я обнаружил,
xdotool
что это является облупленным / глючным, иногда оно закрывает окно переднего плана вместо того, которое должно быть закрыто. Похоже, это связано с тем, что ключи отправляются после переноса окна на передний план вместо прямой отправки оконных событий, и это очень раздражает. Я предлагаю использоватьwmctrl
, который непосредственно закрывает окно без отправки нажатий клавиш.Вы можете закрыть окно напрямую, сопоставив имя, например, оба они закроют окно «Untitled Document 1 - gedit»:
Вы можете использовать
-F
опцию, чтобы рассматривать только точные совпадения:Или вы можете дать идентификатор напрямую:
Больше примеров использования / документации можно найти здесь .
Одна вещь, которую я считаю очень полезной, -
xdotool
это способность ждать, пока не получится результат с использованием--sync
аргумента. Объединение двух в одну команду делается так:Если вы работаете на Mac, вам, вероятно, понадобится
-I{}
параметр:Если вы хотите поддерживать несколько окон, вы должны указывать
xargs
вызыватьwmctrl
не более 1 аргумента каждый раз с-n
опцией.wmctrl
явно не поддерживает несколько окон в качестве аргументов:Это будет ждать, пока не появится хотя бы 1 такое окно, а затем закроет все из них.
источник
top
), конечно, так же, как при нажатии кнопки закрытия.xdotool search --sync --name "Software Updater" | xargs wmctrl -i -c
Trusty и запустил Software Updater. С этого момента Software Updater не отображается должным образом. Отображается только строка заголовка. Переустановка update-manager не помогла.pkill (1) должен быть тем, что вам нужно.
источник
--signal
переключатель, отличный отkill
илиkillall
. Я ожидаю, что Вы хотите сохранить? оповещения.