Vá aqui para obter instruções completas, de forma legível para humanos, no Ubuntu de Mike (obrigado Mike) e aqui está o post original do fórum do Ubuntu (obrigado gotsanity). Eu verifiquei isso no meu sistema para que funcione para você. Também adicionei e editei um pouco para tentar facilitar a compreensão.
As únicas alterações que eu faria nas instruções dele são que você primeiro verifique se possui o compiz instalado (a maneira mais fácil é usar o gerenciador de software e colocar "compiz" na janela de pesquisa.
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 no seu sistema.
Abra um terminal e digite:
xinput list
Ele exibirá uma lista. Encontre o seu número de identificação para o mouse. Você precisará desse 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 armazenar os scripts necessários e movê-lo para ela.
mkdir .scripts
cd .scripts
Então digite
gedit compizsnap-left.sh
Um editor de texto será exibido. Cole isso e altere a identificação do mouse de 11 para o número da saída do comando "xinput list". Quando você fizer 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
Em seguida, faça o mesmo para os outros dois scripts. (Não esquecendo de alterar 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 lembrou de alterar o ID do mouse)
Agora precisamos dizer ao compiz como se comportar quando o mouse se move para a direita, superior e esquerda da tela.
Execute Sistema> Preferências> Gerenciador de configurações do 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
Por fim, vá para a guia Ligações 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.
NB Compiz pode reclamar que já existem funções definidas para as ligações de arestas que você deseja usar - substitua-as pelas suas.