Как закрыть, свернуть и развернуть указанное окно из Терминала?

17

Я использую Ubuntu GNOME 15.10 с GNOME 3.18, и мне интересно, есть ли способ из Терминала закрыть, свернуть, свернуть, развернуть и развернуть указанные окна?

Обратите внимание - я посмотрел на этот вопрос и ответы - я спрашиваю, как это сделать из терминала ... Не как добавить кнопки ... Кнопки уже есть, мне не нужно их добавлять.

Сообщество
источник
2
Возможный дубликат Могу ли я свернуть окно из командной строки?
Анастасия
@Anastasia: Как это дубликат этого? Это только вопрос о минимизации ... Я спрашиваю и обо всех других вещах, на которые там нет ответа.
Я предположил, что эти действия настолько тесно связаны, что ответ на один должен привести ко всем остальным, но вы правы, это может быть широкий кругозор. Теперь мне также интересно, в подмножестве вопросов можно считать дубликаты.
Анастасия
@Anastasia: Ну, потому что ответы на другой вопрос на самом деле не упоминают, как этого достичь, даже если бы они мне помогли, это еще не дубликат этого вопроса. Плюс, даже если ответы на другой вопрос отвечают на мой вопрос, мой вопрос все равно не задает то же самое, что и другой.
Привет Пара, я надеюсь, что вопрос все еще "открыт". Обзор ...
Джейкоб Влейм

Ответы:

18

Есть два важных инструмента для управления окнами cli; xdotoolи wmctrl. Оба инструмента перекрывают друг друга по функциональности, но наиболее важные команды относятся к вашему вопросу:

В (без сомнения, неполном) обзоре перечислены команды, которые я использую чаще всего:

Закрытие окна

wmctrl:

wmctrl -ic <window_id>

Минимизация окна

xdotool:

xdotool windowminimize <window_id>

Свернуть окно

wmctrl:

Эффективная минимизация осуществляется путем:

wmctrl -ia <window_id>

Я упоминаю эффективно , поскольку команда перемещается на соответствующий рабочий стол, минимизирует и поднимает окно, но команда также делает это на окнах, которые не свернуты.

Максимизация окна

xdotool:

xdotool windowsize <window_id> 100% 100%

wmctrl:

wmctrl -ir <window_id> -b add,maximized_vert,maximized_horz

Свернуть окно:

wmctrl -ir <window_id> -b remove,maximized_vert,maximized_horz

Примечания

  • Оба xdotoolи wmctrlне находятся в вашей системе по умолчанию:

    sudo apt-get install xdotool wmctrl
    
  • Чтобы выполнить любую из команд в текущем активном окне:

    • для wmctrlкоманд удалите -iопцию, замените <window_id>на:ACTIVE:

    • для xdotoolкоманд: заменить <window_id>на$(xdotool getactivewindow)

  • Во многих случаях команды могут выполняться с использованием либо идентификатора окна, либо имени окна . -iВариант в wmctrlговорит wmctrlиспользовать идентификатор окна. Я бы предложил не использовать имя окна в качестве идентификатора, чтобы предотвратить конфликт имен. Это происходит легче, чем вы ожидаете.

  • Из моего собственного опыта, используя максимизацию в сценарии; Использование wmctrlдля максимальных / unmaximize может быть немного багги на обоих Unityи Gnome, в то время как xdotoolопция работает более надежной в моем опыте. В большинстве сценариев я использую сочетание обоих wmctrlи xdotool.

Больше информации о man wmctrl и man xdotool (в основном это раздел: WINDOW COMMANDS ).

Якоб Влейм
источник
Спасибо за отличный ответ! Но как вы также минимизируете окно?
1
@ParanoidPanda см. Мой обновленный ответ :)
Джейкоб Влейм
1
wmctrl -ir <window_id> -b remove,maximized_vert,maximized_horzне работает на GNOME 3.20
user41209
4

Добавляем к ответу Якоба Влиима:

xdotool windowactivate $minwinid
xdotool windowraise $minwinid
xdotool windowfocus $minwinid

Также работает для минимизации окна. Анимация быстрее для меня.

asdfdsa
источник