Como redimensiono a janela ativa para 50% com o wmctrl?

7

Gostaria de redimensionar a janela para a metade esquerda da tela.

Uma solução para isso seria usar wmctrl e ativar o keybind comando certo para um atalho de teclado.

Mas a página de manual mostra apenas como redimensionar a uma determinada altura e largura, por exemplo:

wmctrl -r :ACTIVE: -b remove,maximized_vert,maximized_horz && wmctrl -r :ACTIVE: -e 0,0,0,800,1040

que move a janela para o canto superior esquerdo e redimensiona para 800x1040 px.

Mas estranhamente apenas na primeira vez. Se você executar o mesmo comando novamente, moverá para o muito canto superior direito da tela, ignorando a barra de ferramentas superior.

Além disso, seria bom ter esse comando com altura 100% e largura 50% em vez dos valores absolutos.

    
por rubo77 28.10.2012 / 22:38

2 respostas

6

Eu tenho a resposta aqui .

este seria o script para maximizá-lo na metade direita da tela :

#!/bin/bash
# resizes the window to full height and 50% width and moves into upper right corner

#define the height in px of the top system-bar:
TOPMARGIN=27

#sum in px of all horizontal borders:
RIGHTMARGIN=10

# get width of screen and height of screen
SCREEN_WIDTH=$(xwininfo -root | awk '$1=="Width:" {print $2}')
SCREEN_HEIGHT=$(xwininfo -root | awk '$1=="Height:" {print $2}')

# new width and height
W=$(( $SCREEN_WIDTH / 2 - $RIGHTMARGIN ))
H=$(( $SCREEN_HEIGHT - 2 * $TOPMARGIN ))

# X, change to move left or right:

# moving to the right half of the screen:
X=$(( $SCREEN_WIDTH / 2 ))
# moving to the left:
#X=0; 

Y=$TOPMARGIN

wmctrl -r :ACTIVE: -b remove,maximized_vert,maximized_horz && wmctrl -r :ACTIVE: -e 0,$X,$Y,$W,$H

Para ir para a esquerda, basta alterar a linha X para X=0 . (Se você usa o Ubuntu Unity, você precisa adaptar o RIGHTMARGIN também eu uso RIGHTMARGIN=102 )

definindo as margens certas, isso resolve o erro, e na segunda vez que você o chamar, ele irá para o topo da tela, ignorando a barra de ferramentas superior.

    
por 29.10.2012 / 18:13
1

você pode usar xrandr para obter (ou definir) a resolução da tela e usar wmctrl para redimensionar sua janela.

    
por 29.10.2012 / 10:31