Mais próximo Aero-snap no Ubuntu

4

Antes de eu ser gritado por duplicar uma pergunta. Ive ler janela do tipo windows snap 7 como maximizar e recurso vertical e link

Há dois problemas com essa solução que estou tentando resolver.

  1. Não é sensível ao arrastar uma janela
  2. Não é inteligente para monitores Twin-view.

O primeiro problema é o mais urgente. Eu tenho as configurações do compiz com wmctrl, mas isso não é sensível a arrastar janelas se eu tiver uma janela com o foco e colocar meu mouse no painel eu obter a janela maximizada, mesmo que eu não estou arrastando a janela. Uma boa solução seria sensível ao estado do mouse, clicado, clicado com o botão direito, meio clicado. Uma solução ideal seria sensível ao arrastar uma janela ou não.

O segundo é um pequeno aborrecimento para mim, pelo menos. Com os comandos como eles são listados são equivalentes a maximizar as janelas desde que eu tenha uma configuração de monitores Twinview.

Existe alguma maneira de adicionar essas sensibilidades aos comandos?

    
por Andrew Redd 28.12.2010 / 21:27

3 respostas

0

Depois de mexer nas coisas por um tempo, obtive uma solução que funciona com genstures de mouse, seguindo a sugestão de este post .

Eu criei dois scripts, um para encaixe à esquerda e outro para encaixar corretamente.

dockleft:

#! /usr/bin/env bash
WIDTH='xdpyinfo | grep 'dimensions:' | cut -f 2 -d ':' | cut -f 1 -d 'x' '
HALF=$(($WIDTH/2))
QUARTER=$(($WIDTH/4)) 
winid='xdpyinfo | grep focus | grep -E -o 0x[0-9a-f]+'
x='xwininfo -id $winid | grep "Absolute upper-left X" | cut -f 2 -d ':''
y='xwininfo -id $winid | grep "Absolute upper-left Y" | cut -f 2 -d ':''

if [ $x -lt $HALF ]; then
  wmctrl -r :ACTIVE: -b add,maximized_vert && wmctrl -r :ACTIVE: -e 0,0,0,$QUARTER,-1
else
  wmctrl -r :ACTIVE: -b add,maximized_vert && wmctrl -r :ACTIVE: -e 0,$HALF,0,$QUARTER,-1
fi

dockright:

#! /usr/bin/env bash
WIDTH='xdpyinfo | grep 'dimensions:' | cut -f 2 -d ':' | cut -f 1 -d 'x' '
HALF=$(($WIDTH/2))
QUARTER=$(($WIDTH/4)) 
THREEQUARTERS=$(($WIDTH*3/4))
winid='xdpyinfo | grep focus | grep -E -o 0x[0-9a-f]+'
x='xwininfo -id $winid | grep "Absolute upper-left X" | cut -f 2 -d ':''
y='xwininfo -id $winid | grep "Absolute upper-left Y" | cut -f 2 -d ':''

if [ $x -lt $HALF ]; then
  wmctrl -r :ACTIVE: -b add,maximized_vert && wmctrl -r :ACTIVE: -e 0,$QUARTER,0,$QUARTER,-1
else
  wmctrl -r :ACTIVE: -b add,maximized_vert && wmctrl -r :ACTIVE: -e 0,$THREEQUARTERS,0,$QUARTER,-1
fi

Em seguida, usei o easystroke para atribuir gestos do mouse para atracar à esquerda, encaixar corretamente e maximizar. Isso não emula perfeitamente a versão do Windows, mas pelo menos não estarei maximizando minhas janelas automaticamente. Dessa forma, também posso atribuir os scripts a teclas de atalho para maior conveniência.

OBSERVAÇÃO: Isto é para minha configuração de monitor duplo Twinview que leva em conta que eu quero a janela encaixada na lateral do monitor, não a 'área de trabalho' que aparece no Ubuntu como Muito único monitor largo.

Isso provavelmente será suficiente para mim, mas se houver uma solução melhor por aí, eu realmente gostaria de ouvir.

    
por Andrew Redd 28.12.2010 / 23:54
1

Eu queria esse recurso no meu Ubuntu quando eu mudei do windows7. Eu uso o componente de grade no Compiz, mapeado em teclado numérico, isso é realmente eficiente e eu sei que prefiro organizar a janela no meu desktop.

    
por teo96 28.12.2010 / 23:53
0

Andrew, vejo que você já respondeu com a alternativa do EasyStroke, mas vou colocar MEU jeito de fazer isso aqui, apenas para registrar uma alternativa.

Na verdade, eu mantive a alternativa original do Compiz, mas modifiquei os scripts para que eles trabalhassem imediatamente com a janela se arrastando, não esperando um botão de liberação. Eu acho que é uma questão de gosto pessoal, mas como você, eu também prefiro a maneira do Win7 de maximizar o toque de borda.

Para os scripts esquerdo e direito, acabei de comentar o loop que aguarda a liberação do botão:

#while (/usr/bin/X11/xinput --query-state $MOUSE | grep down)
#do 
#   echo 'button pressed'
#done

e nada mais. Bem, eu também adicionei os atalhos de teclado para eles, mas isso é apenas um bônus Compiz. ;-) Parabéns por uma pergunta tão boa.

PS: minha edição está na versão de detecção do clique do mouse, disponível no link .

    
por Charles Roberto Canato 29.12.2010 / 01:41

Tags