Jak zamknąć, zminimalizować i zmaksymalizować określone okno z terminala?

17

Korzystam z Ubuntu GNOME 15.10 z GNOME 3.18 i zastanawiam się, czy istnieje sposób, aby terminal mógł zamknąć, zminimalizować, zminimalizować, zmaksymalizować i zmaksymalizować określone okna?

Uwaga - obejrzałem to pytanie - pytam, jak to zrobić z terminalu ... Nie jak dodawać przycisków ... Przyciski już są, nie muszę ich dodawać.

Społeczność
źródło
@Anastasia: Jak to jest duplikat tego? To tylko prosi o zminimalizowanie ... Pytam także o wszystkie inne rzeczy, na które nie ma tam odpowiedzi.
Zakładałem, że te działania są tak ściśle powiązane, że udzielenie odpowiedzi powinno doprowadzić do wszystkich pozostałych, ale masz rację, może to być szeroki zakres. Teraz zastanawiam się również, czy podzbiory pytań można uznać za duplikaty.
Anastasia
@Anastasia: Cóż, ponieważ odpowiedzi na inne pytanie tak naprawdę nie wspominają, jak to osiągnąć, nawet jeśli mogłyby mi pomóc, nadal nie jest duplikatem tego pytania. Plus, nawet jeśli odpowiedzi na drugie pytanie odpowiadają na moje pytanie, moje pytanie wciąż nie zadaje tego samego, co drugie.
Cześć Para, mam nadzieję, że pytanie jest nadal „otwarte”. Przegląd ...
Jacob Vlijm

Odpowiedzi:

18

Istnieją dwa ważne narzędzia do manipulowania oknami cli; xdotoola wmctrl. Oba narzędzia nakładają się na siebie pod względem funkcjonalności, ale najważniejsze polecenia dotyczące twojego pytania:

W (niewątpliwie niekompletnym) zestawieniu poleceń, których najczęściej używam:

Zamykanie okna

wmctrl:

wmctrl -ic <window_id>

Minimalizowanie okna

xdotool:

xdotool windowminimize <window_id>

Uninimalizowanie okna

wmctrl:

skuteczne minimalizowanie odbywa się poprzez:

wmctrl -ia <window_id>

Wspominam skutecznie , ponieważ polecenie przenosi się na odpowiedni pulpit, unminimalizuje i podnosi okno, ale polecenie robi to również w oknach, które nie są zminimalizowane.

Maksymalizacja okna

xdotool:

xdotool windowsize <window_id> 100% 100%

wmctrl:

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

Un-maksymalizacja okna:

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

Notatki

  • Zarówno xdotooli wmctrlnie są w systemie domyślnie:

    sudo apt-get install xdotool wmctrl
    
  • Aby uruchomić dowolne polecenie w aktualnie aktywnym oknie:

    • dla wmctrlpoleceń usuń -iopcję, zamień <window_id>na:ACTIVE:

    • dla xdotoolpoleceń: zamień <window_id>na$(xdotool getactivewindow)

  • W wielu przypadkach polecenia można uruchamiać przy użyciu identyfikatora okna lub nazwy okna . -iOpcja w wmctrlpowiada wmctrlużywać id okna. Sugeruję, aby nie używać nazwy okna jako identyfikatora, aby zapobiec konfliktom nazw. Zdarza się to łatwiej, niż można się spodziewać.

  • Z własnego doświadczenia korzystam z maksymalizacji w skrypcie; Używanie wmctrldo maksymalizacji / unmaksymalizacji może być trochę wadliwe zarówno , jak Unityi Gnome, podczas gdy xdotoolopcja działa bardziej solidnie z mojego doświadczenia. W większości skryptów używam kombinacji obu wmctrli xdotool.

Więcej informacji na temat man wmctrl i man xdotool (głównie sekcja: KOMENDY WINDOW ).

Jacob Vlijm
źródło
Dzięki za świetną odpowiedź! Ale w jaki sposób unminimalizować okno?
1
@ParanoidPanda zobacz moją zaktualizowaną odpowiedź :)
Jacob Vlijm
1
wmctrl -ir <window_id> -b remove,maximized_vert,maximized_horznie działa na gnome 3.20
user41209
4

Dodając do odpowiedzi Jacoba Vlijma:

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

Działa również w celu minimalizacji okna. Animacja jest dla mnie szybsza.

asdfdsa
źródło