Posicionamento avançado da janela

3

TLDR Estou procurando uma substituição do Ubuntu windowpad

Eu sei que o posicionamento da janela pode ser definido com Ctrl - Alt - Numpad# e Ctrl - Super - arrow Mas esses não são suficientes. Eu tenho o CompizConfig > Ciclo através de vários tamanhos

Mas eu quero atribuir uma tecla de atalho para fazer uma janela ficar à esquerda, altura total, largura 1 / 3rd. O mesmo para a direita. e um para o meio. Estou acostumado a usar o Windowpad (no Windows), o que me permite definir praticamente qualquer coisa. E eu estou tão acostumado com isso.

Qualquer maneira de ajustar isso?

Esclareça Editar. Não se trata de abrir janelas, mas das janelas ativas atuais.

    
por janw 16.05.2015 / 14:52

1 resposta

2

Parece que você está procurando xdotool ou wmctrl . Essas são ferramentas que permitem que você faça scripts de várias interações com a GUI. Ambos podem ser instalados a partir dos repositórios, você pode usar qualquer um que você preferir:

sudo apt-get install wmctrl xdotool

Meu display é 1920 x 1080, então 1/3 de largura seria 640. Para colocar a janela ativa no lado esquerdo da tela, altura total e largura de 1/3, eu executaria:

wmctrl -r :ACTIVE: -e 0,0,0,640,1080

O formato é explicado em man wmctrl :

-r <WIN>
     Specify a target window for an action.
-e <MVARG>
     Resize and move a window that has been specified with a -r action 
     according to the  <MVARG> argument.

 [...]

<MVARG>
     A move and resize argument has the format 'g,x,y,w,h'.  All five components  are  integers.
     The  first  value, g, is the gravity of the window, with 0 being the
     most common value (the default value for the window). [...]
     The four remaining values are a standard geometry specification: x,y 
     is the position of the top  left  corner  of  the  window, and w,h
     is the width and height of the window [...].

<WIN>
     This  argument  specifies a window that is the target of an action. [...]
     The  window name string :ACTIVE: may be used to instruct wmctrl to 
     use the currently active window for the action.

Você também pode torná-lo mais dinâmico, detectando a largura automaticamente. Este comando imprime a largura da sua exibição:

$ xrandr | grep -Po 'current\s*\K\d+'
1920

Você pode, portanto, integrá-lo em wmctrl da seguinte forma:

wmctrl -r :ACTIVE: -e 0,0,0,$(($(xrandr | grep -Po 'current\s*\K\d+')/3)),1080

Agora, tudo o que você precisa fazer é atribuir esse comando a um atalho de teclado nas configurações do Unity e está tudo pronto.

    
por terdon 16.05.2015 / 16:12