2010年6月20日 星期日

在Ubuntu上使用btnx設定多鍵滑鼠

從很久以前,我就習慣使用有很多按鍵的滑鼠,無論是有拇指按鍵、小指按鍵、兩個滾輪,或是滾輪位置是一個軌跡球可以四向滾動或是雷射光學滾輪都有使用過,不過各種各樣的滑鼠使用下來,真正覺得非常必要的大概只有拇指按鍵吧,因為把拇指按鍵設定為滑鼠雙擊之後可以分擔食指的工作,食指不用雙擊之後會感覺比較輕鬆。

不過大部分的滑鼠為了讓這些多出的按鍵與滾輪可以使用,滑鼠廠商大多會附上專屬的驅動程式,在Windows不安裝驅動程式的話,這些滑鼠就只能當作普通的三鍵一滾輪滑鼠使用。而在Linux上,雖然不必安裝滑鼠廠商提供的驅動程式也大多能偵測到這些按鈕,但是按鈕的功能配置卻不能盡如人意,例如滑鼠的拇指鍵就經常會被配置為瀏覽器的「回上一頁」功能,而且部份的按鈕按下後雖然可以被偵測到,但是卻沒有被指定功能,所以等於無用。而Gnome預設的滑鼠偏好設定只提供基本的慣用左右手與滑鼠的速度調整等基本功能,以及無障礙環境設定等等的,並不能提供甚麼幫助。

所以在把我的主要工作環境換成Ubuntu後,我想到的方法是買一隻可程式化的電競滑鼠。基本上A4tech X-718BK這隻滑鼠插入電腦的USB插槽後會被電腦辨認為滑鼠與鍵盤(而不是只有滑鼠),然後經由光碟上的專用程式設定後,滑鼠可以發出所有滑鼠與鍵盤按鈕的組合,還可以用巨集做一連串的動作,而且這些設定都是儲存在滑鼠內,不必靠驅動程式也能獨立運作。我使用這個滑鼠把其中一個拇指鍵設定為滑鼠左鍵雙擊,雖然算是大材小用,但也快樂的用了好一陣子——直到這個滑鼠的滾輪稍微故障,滾動時有時會往反方向抖動為止。這個問題說大不大,但是每次滾動的時候就突然往反方向滾動一下真的會讓我有焦躁感,所以為了維護自己的好心情還是換掉它吧。

當然,我可以再買一隻類似的可程式化滑鼠來使用;但是看著之前被換下來的Microsoft Comfort Optical Mouse 3000只因為我不會在Ubuntu設定拇指按鈕就閒置在那也覺得可惜,所以挑戰了一下設定;而且設了很多次不同的方法終於成功後覺得我應該做個筆記,不然我下次換滑鼠後要再重試一次就麻煩了。

首先是安裝,在Ubuntu軟體中心搜尋btnx會找到兩個程式,其中一個是常駐的daemon,另一個是圖形化的設定介面,雖然圖形化的設定介面為非必要,但為了簡化設定過程所以兩個都安裝。

打開btnx設定程式的主視窗就像上面一樣,Configuration name不是很重要,除非有多個滑鼠需要區別,因為我正巧有所以我把名字設定為滑鼠的廠牌型號。然後就可以按下「Detect mouse & buttons」按鈕了。

偵測滑鼠的第一個畫面就像上面這樣,按下最上方大大的「Press to start mouse detection」。

按下按鈕後,保持滑鼠的游標不要移動也不要按下任何按鈕也不要滾動滾輪。

經過大約五秒後,對話框中間的說明文字會改變,這時就可以移動滑鼠,並依序按下滑鼠上所有的按鈕並滾動滾輪的所有方向,不過記得按下滑鼠左鍵的時候游標不要停留在按鈕上以免誤觸按鈕。最後按下上方的大按鈕結束滑鼠偵測,然後按下「Forword」按鈕繼續按鈕偵測的動作。

按鈕偵測的畫面如上,按最上方的「Press to start button detection」之後,重複按下同一個滑鼠按鈕幾次或是滾輪滾向同一方向,讓中間的進度條增加到滿為止。

然後就可以為剛才按下的按鈕或是滾輪方向命名,按下「Add」按鈕。重複上一個步驟與這個步驟直到替滑鼠上所有的按鈕與滾輪方向命名為止,然後按下「OK」按鈕結束設定步驟。

結束設定回到主視窗,可以看到偵測到的裝置與按鈕數量;比如這隻滑鼠包含各個方向的滾輪總共有八個按鈕。

將主視窗切換到「Buttons」分頁,可以看到左邊列出剛才設定的按鈕名稱。選擇其中一個後,可以在右邊設定要執行的動作。首先要勾選「Enabled」啟用這個按鈕的設定,Event Type選擇「Key combination」表示要送出滑鼠或鍵盤的組合鍵。Keycode的下拉式選單展開後有一長串的鍵盤與滑鼠按鈕列表,但是找了很久就是找不到雙擊滑鼠左鍵的選項。再到網路上尋找資料後發現在Launchpad上有一個關於這個設定程式的Bug: No way to define a double click event,表示目前圖形介面設定程式不提供雙擊按鈕的功能,需要使用文字編輯器編輯設定檔才能達到。

所以使用Alt+F2呼叫出執行程式視窗,輸入gksudo gedit命令以root權限執行文字編輯器,輸入密碼後打開/etc/btnx/btnx_config_[設定檔名稱]檔案,把要設定為雙擊的按鈕的type = 0改為type =1,存檔然後重啟btnx daemon(或重開機)就可以了。

設定完畢以後就可以使用了,打開終端機程式輸入xev | grep button命令可以使用xev命令測試應用程式收到的訊息;可以發現所謂的「雙擊」其實是在滑鼠按鈕按下的時候送出一次左鍵的click,然後在放開的時候送出另一次。

雖然設定了好一陣子之後終於成功了,不過總覺得這就是還不夠方便的地方啊。

沒有留言:

張貼留言