Como posso automatizar o mosaico de janelas com uma largura personalizada? (Canela)

6

Estou executando o Linux Mint 17 Canela 2.4.8.

Eu gosto muito do xdotool, mas entra em conflito com o incrível recurso de encaixe / estalo do Cinnamon.

Se eu executar o seguinte comando, NOT funcionará se a janela atual for encaixada em um canto / lado / tela inteira.

xdotool getactivewindow windowsize 500 1080 windowmove 1420 0

Eu gostaria de mantê-lo encaixado, mas com uma largura personalizada. Se não for NÃO , funciona.

Objetivo principal: encaixar uma janela no lado direito, com 500 de largura (por meio de um comando)

No entanto, é provavelmente impossível com o xdotool.

Eu preferiria não instalar mais nada, e fazer tudo com canela, mas se alguém acha que eu posso alcançar meu objetivo com o wmctrl, então vou tentar.

Saída desejada x saída atual

link

link

    
por TuxForLife 16.05.2015 / 00:47

3 respostas

3

Pode ser necessário remover primeiro alguns sinalizadores de maximização:

wmctrl -r :ACTIVE: -b remove,maximized_vert,maximized_horz;\
xdotool getactivewindow windowsize 500 1080 windowmove 1420 0;\
wmctrl -r :ACTIVE: -b add,maximized_vert
    
por 18.05.2015 / 02:06
3

Este comando funciona para você (usa wmctrl ):

dist500fromright=$(('xrandr | grep \* | awk '{print $1}' | sed 's/x.*$//''-500));y='xrandr | grep \* | awk '{print $1}' | sed 's/^.*x//'';wmctrl -r :ACTIVE: -b add,maximized_vert && wmctrl -r :ACTIVE: -e 0,$dist500fromright,0,500,$y

Divisão

xrandr gera uma lista de geometrias e o * mostra o modo atual. Por exemplo:

$ xrandr | grep \*
   1920x1200      60.0*+

Usamos awk para capturar a primeira coluna de saída e sed para capturar as dimensões delimitadas pelo caractere x .

$ xrandr | grep \* | awk '{print $1}' 
1920x1200

$ xrandr | grep \* | awk '{print $1}' | sed 's/x.*$//'
1920

O Bash nos permite fazer cálculos na saída do comando, agrupando-o em $((...)) :

$ echo 5+2
5+2

$ echo $((5+2))
7

Por isso, colocamos o comando em $((...)) e subtraímos 500 para obter a posição de coordenada x 500 pixels a partir da borda direita da tela:

$ echo  $(('xrandr | grep \* | awk '{print $1}' | sed 's/x.*$//''-500))
1420

Note que, para subtrair 500 de 1920, tivemos que colocar o comando que produz 1920 nos backticks primeiro.

Definimos a saída acima para a variável dist500fromright e fazemos algo semelhante para armazenar as dimensões y da tela na variável y :

$ dist500fromright=$(('xrandr | grep \* | awk '{print $1}' | sed 's/x.*$//''-500))

$ y='xrandr | grep \* | awk '{print $1}' | sed 's/^.*x//'';

Agora estamos prontos para executar o comando wmctrl

$ wmctrl -r :ACTIVE: -b add,maximized_vert

$ wmctrl -r :ACTIVE: -e 0,$dist500fromright,0,500,$y

onde o último comando é redimensionado e move a janela ativa, enquanto o primeiro permite redimensionar / mover em janelas encaixadas.

    
por 18.05.2015 / 01:37
0

Você pode usar o wmctrl para isso,

como exemplo do antigo fórum de mate do mint linux, acho que você também pode usá-lo em canela:

wmctrl -r :ACTIVE: -e 0,0,0,width,height

Isso deve funcionar.

Se sua tela estiver em tela cheia, você deve usar:

wmctrl -r :ACTIVE: -b remove,maximized_horz,maximized_vert
wmctrl -r :ACTIVE: -e 0,0,0,width,height

fonte:

link

ou use ctrl + numpad para obter o local desejado

fonte:

link

    
por 19.05.2015 / 14:10