Перейдіть сюди, щоб отримати повні інструкції у читаній людиною формі від Ubuntu Майка (спасибі Майку), і ось оригінальний пост форуму Ubuntu (спасибі gotsanity). Я перевірив це на своїй системі, щоб воно працювало для вас. Я також додав і відредагував трохи, щоб спробувати полегшити розуміння.
Єдині зміни, які я вніс би на його вказівки, - це спершу перевірити, чи встановлений у вас compiz (найпростіший спосіб - скористатися менеджером програмного забезпечення та поставити "compiz" у вікно пошуку.
Якщо ви це зробите, то введіть у термінал наступне:
sudo apt-get install compizconfig-settings-manager wmctrl
Інакше менеджер налаштувань compiz не буде присутній у вашій системі.
Відкрийте термінал і введіть:
xinput list
Він відобразить список. Знайдіть свій ідентифікаційний номер для миші. Цей номер вам знадобиться в наступних кроках. Моїх було 10. Ваша ймовірність буде іншою.
Ці наступні команди створюють нову приховану папку у вашій домашній папці, щоб вмістити потрібні сценарії та перемістити вас у неї.
mkdir .scripts
cd .scripts
Потім введіть
gedit compizsnap-left.sh
З'явиться текстовий редактор. Вставте це, а потім змініть ідентифікатор миші з 11 на число з виводу команди "xinput list". Після цього збережіть файл.
#!/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
Потім зробіть те саме для двох інших сценаріїв. (Не забувши змінити ідентифікатор миші)
compizsnap-right.sh
Код:
#!/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
І
compizsnap-max.sh
Код:
#!/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
(Чи пам’ятали ви змінити ідентифікатор миші)
Тепер нам потрібно сказати compiz, як поводитися, коли миша рухається вправо, вгорі та зліва від екрана.
Запустіть систему> Налаштування> Менеджер налаштувань CompizConfig. Перейдіть до розділу команд. Встановіть наступне:
У полі Command 0:
sh ~/.scripts/compizsnap-left.sh
У полі Command 1:
sh ~/.scripts/compizsnap-right.sh
У полі Command 2:
sh ~/.scripts/compizsnap-max.sh
Нарешті, перейдіть на вкладку крайових прив’язок і встановіть команду 0 вліво, встановіть команду 1 праворуч і встановіть команду 2 вгорі.
NB Compiz може скаржитися, що вже є функції, встановлені для крайових прив'язок, які ви хочете використовувати - замініть їх на ваші.