Як закрити, мінімізувати та максимізувати вказане вікно від Terminal?


17

Я запускаю Ubuntu GNOME 15.10 з GNOME 3.18, і мені цікаво, чи є спосіб від Terminal закрити, звести до мінімуму, незмінювати, максимізувати та не максимізувати вказані вікна?

Примітка. Я розглянув це питання і запитання - я запитую, як це зробити з терміналу ... Не як додати кнопки ... Кнопки вже є, мені не потрібно їх додавати.



@ Анастасія: Як це дублікат цього? Це запитує лише про мінімізацію ... Я запитую про всі інші речі, на які там не відповідають.

Я припускав, що ці дії настільки тісно пов’язані між собою, що відповідь на один повинен призвести до всіх інших, але ти маєш рацію, що це може бути широким переглядом. Тепер мені також цікаво, як підмножини питань можна вважати дублікатами.
Анастасія

@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для максимізації / максимізації може бути дещо помилковим і на, 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

Також працює для немімімізації вікна. Анімація для мене швидша.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.