Como fechar, minimizar e maximizar uma janela especificada do Terminal?

8

Estou executando o Ubuntu GNOME 15.10 com o GNOME 3.18 e estou querendo saber se existe uma maneira do Terminal de fechar, minimizar, desminimizar, maximizar e desimpedir janelas especificadas?

Nota - Eu olhei para este Q & amp; A - Eu estou perguntando como fazer isso do Terminal ... Não como adicionar os botões ... Os botões já estão lá, eu não preciso adicioná-los.

    
por Great Uncle Bulgaria 28.11.2015 / 19:35

2 respostas

6

Existem duas ferramentas importantes para manipular janelas de cli ; xdotool e wmctrl . As duas ferramentas se sobrepõem na funcionalidade, mas os comandos mais importantes se referem à sua pergunta:

Em uma visão geral (sem dúvida incompleta), listando os comandos que mais uso:

Fechando uma janela

wmctrl:

wmctrl -ic <window_id>

Minimizando uma janela

xdotool:

xdotool windowminimize <window_id>

Un-minimizando uma janela

wmctrl:

efetivamente a minimização é feita por:

wmctrl -ia <window_id>

Menciono efetivamente , já que o comando se move para a área de trabalho correspondente, unminimiza e aumenta a janela, mas o comando também faz isso em janelas que não são minimizadas. / p>

Maximizar uma janela

xdotool:

xdotool windowsize <window_id> 100% 100%

wmctrl:

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

Não maximizando uma janela:

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

Notas

  • Por padrão, xdotool e wmctrl não estão no seu sistema:

    sudo apt-get install xdotool wmctrl
    
  • Para executar qualquer um dos comandos na janela ativa atualmente:

    • para comandos wmctrl , remova a opção -i , substitua <window_id> por :ACTIVE:

    • para comandos xdotool : substitua <window_id> por $(xdotool getactivewindow)

  • Em muitos casos, os comandos podem ser executados usando o id da janela ou o nome da janela . A opção -i em wmctrl indica wmctrl para usar o id da janela. Eu sugeriria não usando o nome da janela como um identificador, para evitar conflitos de nome. Acontece mais facilmente do que você esperaria.

  • Da minha própria experiência, usando a maximização em um script; Usar wmctrl para maximizar / não maximizar pode ser um pouco problemático em Unity e Gnome , enquanto a opção xdotool funciona mais robusta na minha experiência. Na maioria dos scripts, acabo usando uma mistura de wmctrl e xdotool .

Mais informações sobre man wmctrl e man xdotool (principalmente a seção: COMANDOS DE JANELA ).

    
por Jacob Vlijm 29.02.2016 / 20:44
1

Acrescentando a resposta de Jacob Vlijm:

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

Também funciona para unminimizing uma janela. A animação é mais rápida para mim.

    
por asdfdsa 07.01.2017 / 20:08