2010-06-01

Logitech Marble Trackball on Ubuntu 10.04+

凍仁自從升上 Ubuntu 10.04 以後就一直有個很頭痛的問題,那就是羅技的木星軌跡球(Logitech Marble Trackball)原本改 hal 的部份沒了。

感謝 BlueT 前輩介紹的 gpointing-device-settings,它是專門用來設定捲動(Scroll)、中鍵點擊(Middle button Click)的圖形化設定軟體,不巧 Marble 的設定少了第 9 鍵,也就是圖中的 3 號,最後還是認為直接撰寫 shell script 跑 xinput,然後加入自動啟動裡比較簡單。

1. 模擬小中鍵水平、垂直捲動 (Horizontal and Vertical Scrolling) 以及中鍵點擊(Middle Click)


1.1. 安裝 xinputlibnotify-bin 套件,其中 libnotify-bin 是作為發送成功訊息用的,可省略,但下方 shell scripts 中的 notify-send 需移除。
jonny@lucid:~$ sudo aptitude install xinput libnotify-bin [Enter]

1.2. 於家目錄底下建立 .xinput.d 目錄。
jonny@lucid:~$ mkdir ~/.xinput.d/ [Enter]

1.3. 撰寫 shell scripts。
jonny@lucid:~$ vi ~/.xinput.d/marble-init.sh [Enter]
 1 #!/bin/bash
 2 # Filename: marble-init.sh
 3 # Info:     Enable scroll and middle click at Marble TrackBall.
 4 
 5 DEV_MARBLE=$( lsusb | grep -i "Logitech, Inc. Marble Mouse" | wc -l )
 6 
 7 if [ $DEV_MARBLE -eq "1" ]; then
 8 
 9     # Scroll with button(9)
10     xinput set-prop 'Logitech USB Trackball' "Evdev Wheel Emulation" 1
11     xinput set-prop 'Logitech USB Trackball' "Evdev Wheel Emulation Button" 9
12     xinput set-prop 'Logitech USB Trackball' "Evdev Wheel Emulation Timeout" 200
13     xinput set-prop 'Logitech USB Trackball' "Evdev Wheel Emulation Axes" 6 7 4 5
14     xinput set-prop 'Logitech USB Trackball' "Evdev Middle Button Emulation" 1
15     xinput set-prop 'Logitech USB Trackball' "Evdev Middle Button Timeout" 50
16 
17     # middle click with button(8).
18     xinput set-button-map "Logitech USB Trackball" 1 8 3 4 5 6 7 2 9
19 
20     STATUS="'Marble TrackBall' 'Enabled Scroll and Middle Click'"
21 
22 else
23 
24     STATUS="'Marble TrackBall' 'No search device'"
25 
26 fi
27 
28 echo "notify-send -t 2000 -i mouse $STATUS" | bash
29 
30 # ------------------------------------
31 # Author : Chu-Siang, Lai
32 # E-mail : jonny (at) ubuntu-tw.org
33 # Blog: http://note.drx.tw
34 # ------------------------------------
35 

1.4. 賦予他執行權限。
jonny@lucid:~$ chmod +x ~/.xinput.d/marble-init.sh [Enter]

1.5. 執行剛剛寫好的 script。
jonny@lucid:~$ ~/.xinput.d/marble-init.sh [Enter]

2. 加入 開機 登錄自動


由於 Ubuntu 在 $HOME/.config/autostart/ 底下放著自動啟動的設定檔,故我們只需參考其內容改一個給木星用就行了。
jonny@lucid:~$ vi ~/.xinput.d/marble-init.sh [Enter]
 1 [Desktop Entry]
 2 
 3 Comment=Enable scroll and middle click of Logitech Marble TrackBall
 4 Comment[zh_TW]=Enable scroll and middle click of Logitech Marble TrackBall
 5 Exec=sh /home/jonny/.xinput.d/marble-init.sh
 6 Hidden=false
 7 Icon=mouse
 8 Name=Marble Initialization
 9 Name[zh_TW]=Marble Initialization 
10 NoDisplay=false
11 Type=Application
12 X-GNOME-Autostart-Delay=40
13 X-GNOME-Autostart-enabled=true
14 
15 # ------------------------------------
16 # Author : Chu-Siang, Lai
17 # E-mail : jonny (at) ubuntu-tw.org
18 # Blog: http://note.drx.tw
19 # ------------------------------------
20 

完成!目前 xinput 的方法從 Ubuntu 10.04 到 12.04 一路都適用呢,真的是太棒了!

2012-05-06


凍仁在舊整理文章時發現 xinput 現在也支援中鍵點擊了,真的是太好了!這下以後上班就可以同時使用火星、木星跟小紅點三個中鍵的完整功能了!

站內連結:
Logitech Marble on Ubuntu 9.10

資料來源:
Logitech_Marblemouse_USB - Community Ubuntu Documentation
Logitech Trackman Marble on Ubuntu 10.04 - 石頭閒語