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

16

Estou executando o Ubuntu GNOME 15.10 com o GNOME 3.18 e estou me perguntando se existe uma maneira do Terminal fechar, minimizar, desminimizar, maximizar e desmaximizar as janelas especificadas?

Nota - Examinei estas perguntas e respostas - Estou perguntando como fazê-lo no Terminal ... Não como adicionar os botões ... Os botões já estão lá, não preciso adicioná-los.

Comunidade
fonte
2
Possível duplicata de Posso minimizar uma janela na linha de comando?
Anastasia
@ Anastasia: Como isso é uma duplicata disso? Isso só pergunta sobre minimizar ... Eu também estou perguntando sobre todas as outras coisas que não são respondidas lá.
Presumi que essas ações estão tão intimamente relacionadas que responder a uma deve levar a todas as outras, mas você está certo, isso pode ser uma grande varredura. Agora também estou pensando em subconjuntos de perguntas que podem ser consideradas duplicadas.
Anastasia
@ Anastasia: Bem, porque as respostas para a outra pergunta não mencionam como conseguir isso, mesmo que me ajudassem, ainda não é uma duplicata dessa pergunta. Além disso, mesmo que as respostas para a outra pergunta respondam à minha pergunta, minha pergunta ainda não está fazendo a mesma coisa que a outra pergunta.
Oi Pará, espero que a pergunta ainda esteja "aberta". Uma visão geral ...
Jacob Vlijm

Respostas:

17

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

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

Fechando uma janela

wmctrl:

wmctrl -ic <window_id>

Minimizando uma janela

xdotool:

xdotool windowminimize <window_id>

Desminimizando 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, não minimiza e aumenta a janela, mas o comando também faz isso em janelas que não são minimizadas.

Maximizando 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

  • Ambos xdotoole wmctrlnão estão no seu sistema por padrão:

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

    • para wmctrlcomandos, remova a -iopção, substitua <window_id>por:ACTIVE:

    • para xdotoolcomandos: 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 -iopção em wmctrldiz wmctrlpara usar o ID da janela. Eu sugiro não usar o nome da janela como um identificador, para evitar conflitos de nome. Isso acontece mais facilmente do que você esperaria.

  • Da minha própria experiência, usando maximizing em um script; Usar wmctrlpara maximizar / não maximizar pode ser um pouco complicado para ambos Unitye Gnome, enquanto a xdotoolopção funciona mais robusta na minha experiência. Na maioria dos scripts, acabo usando uma mistura de ambos wmctrle xdotool.

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

Jacob Vlijm
fonte
Obrigado pela ótima resposta! Mas como você também não minimiza uma janela?
11
@ParanoidPanda ver minha resposta atualizados :)
Jacob Vlijm
11
wmctrl -ir <window_id> -b remove,maximized_vert,maximized_horzNão funcione no gnome 3.20
user41209
4

Adicionando à resposta de Jacob Vlijm:

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

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

asdfdsa
fonte