Como usar o Window Snapping para o Ubuntu? [duplicado]

11

Estou tentando o Ubuntu e quero que minhas janelas se encaixem à esquerda e à direita, como o Windows 7, quando uso as teclas de atalho Window Key + Arrow. Como posso fazer isso?

    
por Doug 14.02.2011 / 02:04

3 respostas

18

Isso é fácil de ativar no Gerenciador de Configurações do CompizConfig. (Instale, se você ainda não o fez).

Em seguida, em Gerenciamento de Janelas, ative Grid. Eu mantive as ligações padrão de CTRL + ALT + NUMPAD, mas você pode facilmente mudar o Super + Arrow como preferir.

    
por bitslave 14.02.2011 / 15:18
3

Vá aqui para ver instruções em um formato legível pelo Mike's Ubuntu, (obrigado Mike) e aqui é o post do fórum original do Ubuntu (obrigado gotsanity). Eu verifiquei isso no meu sistema por isso deve funcionar para você. Eu também adicionei e editei um pouco para tentar torná-lo um pouco mais fácil de entender.

As únicas mudanças que eu faria em suas direções é que você primeiro verifique se você tem o compiz instalado (a maneira mais fácil é usar o gerenciador de software e colocar "compiz" na janela de busca.

Se você fizer isso, digite o seguinte em um terminal: -

sudo apt-get install compizconfig-settings-manager wmctrl

Caso contrário, o gerenciador de configurações do compiz não estará presente em seu sistema.

Abra um terminal e digite:

xinput list

Ele irá exibir uma lista. Encontre o seu número de identificação para o seu mouse. Você precisará deste número nas próximas etapas. O meu era 10. O seu provavelmente será diferente.
Esses próximos comandos criam uma nova pasta oculta na sua pasta pessoal para manter os scripts necessários e movê-lo para ela.

mkdir .scripts

cd .scripts

Em seguida, digite

gedit compizsnap-left.sh    

Um editor de texto aparecerá. Cole isso e, em seguida, mude o ID do mouse de 11 para o número da saída do comando "xinput list". Quando você tiver feito isso, salve o arquivo.

#!/bin/sh
#
# CompizSnap is a collaborative project from ubuntuforums.org and is free software.
# This script adds window snapping functionality to compiz using the commands plugin.
#
# Directions: run "xinput list" to find your mouse's ID# and then edit the MOUSE variable below:
#

MOUSE="11"

# ----- Don't edit below this line unless you know what you are doing.
WIDTH='xdpyinfo | grep 'dimensions:' | cut -f 2 -d ':' | cut -f 1 -d 'x'' && HALF=$(($WIDTH/2-10))

echo $WIDTH
TEMPWIDTH=$(($WIDTH-10))
echo $TEMPWIDTH
if /usr/bin/X11/xinput --query-state $MOUSE | grep down
then
    while (/usr/bin/X11/xinput --query-state $MOUSE | grep down)
    do
        echo 'button pressed'
    done

    if [ "$(/usr/bin/X11/xinput --query-state $MOUSE | grep "valuator\[0\]=." | sed s/"valuator\[0\]="//)" -le 10 ]
    then

        wmctrl -r :ACTIVE: -b remove,maximized_vert,maximized_horz && wmctrl -r :ACTIVE: -b add,maximized_vert && wmctrl -r :ACTIVE: -e 0,0,0,$HALF,-10

    else
        echo "exiting without matching"
        exit 1
    fi
else
        echo "exiting because button isnt "
        exit 1
fi    

Depois, faça o mesmo com os outros dois scripts. (Não esquecendo de mudar o ID do mouse)

compizsnap-right.sh

Código:

#!/bin/sh
#
# CompizSnap is a collaborative project from ubuntuforums.org and is free software.
# This script adds window snapping functionality to compiz using the commands plugin.
#
# Directions: run "xinput list" to find your mouse's ID# and then edit the MOUSE variable below:
#

MOUSE="11"

# ----- Don't edit below this line unless you know what you are doing.
WIDTH='xdpyinfo | grep 'dimensions:' | cut -f 2 -d ':' | cut -f 1 -d 'x'' && HALF=$(($WIDTH/2))

echo $WIDTH
TEMPWIDTH=$(($WIDTH-10))
echo $TEMPWIDTH
if /usr/bin/X11/xinput --query-state $MOUSE | grep down
then
    while (/usr/bin/X11/xinput --query-state $MOUSE | grep down)
    do
        echo 'button pressed'
    done

    if [ "$(/usr/bin/X11/xinput --query-state $MOUSE | grep "valuator\[0\]=." | sed s/"valuator\[0\]="//)" -ge $TEMPWIDTH ]
    then

        wmctrl -r :ACTIVE: -b remove,maximized_vert,maximized_horz && wmctrl -r :ACTIVE: -b add,maximized_vert && wmctrl -r :ACTIVE: -e 0,$HALF,0,$HALF,-1

    else
        echo "exiting without matching"
        exit 1
    fi
else
        echo "exiting because button isnt "
        exit 1
fi    

e

compizsnap-max.sh

Código:

#!/bin/sh
#
# CompizSnap is a collaborative project from ubuntuforums.org and is free software.
# This script adds window snapping functionality to compiz using the commands plugin.
#
# Directions: run "xinput list" to find your mouse's ID# and then edit the MOUSE variable below:
#

MOUSE="11"

# ----- Don't edit below this line unless you know what you are doing.
if /usr/bin/X11/xinput --query-state $MOUSE | grep down
then
    while (/usr/bin/X11/xinput --query-state $MOUSE | grep down)
    do
        echo 'button pressed'
    done
    if [ "$(/usr/bin/X11/xinput --query-state $MOUSE | grep "valuator\[1\]=." | sed s/"valuator\[1\]="//)" -le 10 ]
    then

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

    else
        echo "exiting without matching"
        exit 1
    fi
else
        echo "exiting because button isnt "
        exit 1
fi    

(Você se lembra de mudar o ID do mouse)

Agora precisamos dizer ao compiz como se comportar quando o mouse se move para a direita, para cima e para a esquerda da tela.

Executar sistema > Preferências > Gerenciador de configurações CompizConfig. Vá para a seção de comando. Defina o seguinte:
No campo Comando 0:

sh ~/.scripts/compizsnap-left.sh

No campo Comando 1:

sh ~/.scripts/compizsnap-right.sh

No campo Comando 2:

sh ~/.scripts/compizsnap-max.sh

Finalmente, vá para a aba de bindings de borda e defina o comando 0 para a esquerda, defina o comando 1 para a direita e defina o comando 2 para o topo.

N.B. O Compiz pode reclamar que já existem funções definidas para as ligações de borda que você deseja usar - substitua-as pelas suas.

    
por Tog 14.02.2011 / 11:20
2

Uma das diferenças entre a maioria dos gerenciadores de janelas Unix e o Windows é que a maioria dos gerenciadores de janelas Unix oferece resistência ao movimento das janelas nas bordas da tela. Portanto, você não precisa de nenhum comando especial para mover as janelas para a borda esquerda ou direita da tela; basta arrastar uma em direção a uma borda e ela irá parar quando chegar lá. Não conheço nenhum atalho de teclado do Gnome (o gerenciador de janelas padrão do Ubuntu, por enquanto) que move janelas.

    
por garyjohn 14.02.2011 / 05:08