Tới đây để được hướng dẫn đầy đủ dưới dạng có thể đọc được từ Ubuntu của Mike, (cảm ơn Mike) và tại đây là bài đăng trên diễn đàn Ubuntu gốc (cảm ơn gotsanity). Tôi đã kiểm tra cái này trên hệ thống của tôi để nó hoạt động cho bạn. Tôi cũng đã thêm và chỉnh sửa một chút để cố làm cho dễ hiểu hơn một chút.
Những thay đổi duy nhất tôi sẽ thực hiện theo chỉ dẫn của anh ấy là trước tiên bạn kiểm tra xem bạn đã cài đặt compiz chưa (cách dễ nhất là sử dụng trình quản lý phần mềm và đặt "compiz" trong cửa sổ tìm kiếm.
Nếu bạn làm như vậy thì gõ như sau trong một thiết bị đầu cuối: -
sudo apt-get install compizconfig-settings-manager wmctrl
Nếu không, trình quản lý cài đặt compiz sẽ không xuất hiện trên hệ thống của bạn.
Mở một thiết bị đầu cuối và gõ:
xinput list
Nó sẽ hiển thị một danh sách. Tìm số id cho chuột của bạn. Bạn sẽ cần số này trong các bước tiếp theo. Của tôi là 10. Bạn rất có thể sẽ khác.
Các lệnh tiếp theo này tạo một thư mục ẩn mới trong thư mục nhà của bạn để giữ các tập lệnh cần thiết và chuyển bạn vào đó.
mkdir .scripts
cd .scripts
Sau đó gõ
gedit compizsnap-left.sh
Một trình soạn thảo văn bản sẽ bật lên. Dán cái này vào, rồi thay đổi id chuột của bạn từ 11 thành số từ đầu ra của lệnh "danh sách xinput". Khi bạn đã làm điều này, lưu tập tin.
#!/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
Sau đó, làm tương tự cho hai kịch bản khác. (Không quên thay đổi ID chuột)
compizsnap-right.sh
Mã số:
#!/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
Và
compizsnap-max.sh
Mã số:
#!/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
(Bạn có nhớ thay đổi ID chuột)
Bây giờ chúng ta cần nói với compiz cách cư xử khi chuột di chuyển sang phải, trên cùng và bên trái màn hình.
Chạy Hệ thống> Tùy chọn> Trình quản lý cài đặt CompizConfig. Đi đến phần lệnh. Đặt như sau:
Trong trường Lệnh 0:
sh ~/.scripts/compizsnap-left.sh
Trong trường Lệnh 1:
sh ~/.scripts/compizsnap-right.sh
Trong trường Lệnh 2:
sh ~/.scripts/compizsnap-max.sh
Cuối cùng, đi đến tab liên kết cạnh và đặt lệnh 0 sang trái, đặt lệnh 1 sang phải và đặt lệnh 2 lên trên cùng.
NB Compiz có thể phàn nàn rằng đã có các chức năng được đặt thành các ràng buộc cạnh bạn muốn sử dụng - thay thế chúng bằng các liên kết của bạn.