Ты знаешь, как это сделать? Я знаю, как сделать это с клавиатуры (Alt + F4), я знаю, как сделать это с помощью мыши (щелкните по X), и я также знаю, что kill X
должен завершить процесс с идентификатором X (и killall Y
должен убить процесс с именем Y). Но я хочу знать, как убить активное окно из терминала.
Таким образом, из того, что я изложил выше, правильным ответом также будет получение идентификатора активного окна.
Прямо сейчас я реализую эту функцию из xte (имитируя Alt + F4), но я хотел бы знать, есть ли способ, который не подразумевает установку другого приложения. Спасибо всем.
РЕДАКТИРОВАТЬ. Вот полный сценарий. Сначала вы включаете «показывать мышь при нажатии Ctrl», затем вы добавляете этот скрипт в Commands в CompizConfig и привязываете к правому верхнему углу. При прикосновении к верхнему правому углу вокруг мыши отображается небольшое уведомление. Если вы ничего не делаете, активное окно закроется через 1 секунду. Однако, если вы снова дотронетесь до угла в течение второго, активное окно не закроется.
xte 'key Control_R'; if [ -f ~/.fcont ]; then rm -f -r ~/.fcont; else touch ~/.fcont; sleep 1; if [ -f ~/.fcont ]; then xkill -id `xprop -root _NET_ACTIVE_WINDOW | cut -d\# -f2`; rm -f -r ~/.fcont; fi fi
Обратите внимание, что я все еще использую приложение xte, названное ранее, так как на этот вопрос, который я задал некоторое время назад, так и не был получен ответ.
И если Вы хотите стать действительно волосатыми и избежать приложений, которые не установлены по умолчанию:
xkill -id `xprop -root _NET_ACTIVE_WINDOW | cut -d\# -f2`
Снова, это, кажется, работает довольно хорошо.
ПРИМЕЧАНИЕ: В случае приблизительно приложения (см. комментарии) это может означать, что все окна для приложения закрываются. gnome-terminal
одно такое приложение, но terminator
, и xterm
не затронуты. Я предположил бы, что это - больше ошибка (возможно, дизайном) с теми приложениями, а не один с моей командой.
Я использовал бы xdotool
:
xdotool windowkill `xdotool getactivewindow`
, Кажется, делает задание быстро и бесшумно.
wmctrl
команда ниже также закрывает в настоящее время активное окно с помощью спецификации EWMH, хотя это делает , требуют установки другой программы, которой Вы, казалось, предпочли избегать.
В результате это ожидало поведение:
wmctrl -c :ACTIVE:
От домашней страницы проекта wmctrl - инструмент командной строки для взаимодействия с совместимым менеджером по X Window EWMH/NetWM.
-c Закрывают окно корректно.
и
специальная строка ": АКТИВНЫЙ": (без кавычек), может использоваться, чтобы дать wmctrl команду использовать в настоящее время активное окно для действия.