雖說使用linux的 人大都對微軟沒什麼好感,但不能否認微軟確實也出了不少好東西呀,比如微軟鼠標(IE系列) icon_smile.gif IE 2.0和以上版本都有5個按鈕,除了正常的左中右外,兩側還各有一個,在windows中可用來支持浏覽器的前進/後退功能很是方便。其實在linux中 稍加配置也能完成同樣的功能,為什麼不呢?
(一)先解釋一下linux中對鼠標按鈕和滾輪的處理。
在linux中,滾輪被當作兩個按鈕來處理,向上滾是一個,向下滾是另一個。所以以IE2.0為例,一共有7個按鈕:左中右三個,兩側各一個,加上滾輪兩個。
(二)修改X配置
首先我們考慮你的機器只有一個鼠標的情況,因為我的實驗是在IBM筆記本上進行的,微軟鼠標是我的第二個鼠標(別忘了,筆記本自己還有一個呢),這種多於一個的情況有些復雜,稍後再敘述。
需要修改的配置文件 /etc/X11/XF86Config,或者 /etc/X11/XF86Config-4,如果兩個都有就改第二個。
找到關於鼠標的一段,一般是下面這樣的。
代碼:
復制代碼代碼如下:
Section InputDevice
Identifier Mouse0
Driver mouse
Option Device /dev/mouse
Option Protocol IMPS/2
Option Emulate3buttons no
Option ZAxisMapping 4 5
Option Buttons 5
EndSection
其中 Identifier 和 Device字段各人的機器會不一樣,我們也不用管它。我們需要修改的是其他字段,修改後的配置如下:
代碼:
復制代碼代碼如下:
Section InputDevice
Identifier Mouse0
Driver mouse
Option Device /dev/mouse
Option Protocol ExplorerPS/2
Option Emulate3Buttons no
Option ZAxisMapping 6 7
Option Buttons 7
EndSection
說明:
Option Device 字段說明鼠標的類型,這裡改成微軟鼠標的類型,如果是其它型號的鼠標,比如邏技,只要型號代碼填寫正確也應可行。至於普通的5鍵鼠標,用IMPS/2行不行,我沒試過;
Option Buttons 字段說明鼠標的按鈕個數,計算方法前面說過了;
Option ZAxisMapping 字段說明將滾輪映射成哪兩個按鍵,這裡也是比較有意的地方,無論你的鼠標有幾個按鈕,正常的情況應該是 4 5。可是X只能認識最後的兩個按鈕為鼠標,所以必須改成6 7,而造成的後果就是:左右兩側的按鈕成了滾輪,滾輪成了兩側的按鈕,不過不要害怕,下面自有辦法解決icon_smile.gif
(三)重新啟動X
配置修改好了,重新啟動X,看看我們的成果。在命令行下輸入 xev 進行測試。
把鼠標移到那個小窗口中,分別按鼠標的各個按鈕和上下滾動滾輪,窗口中應該出現button 1,button 2, ... button 7的字樣。(注意:按下去時沒有,必須釋放才有,這是鼠標的工作原理,呵呵)
如果你能看到button 1 ... button 7,恭喜即將大功告成了。
現在我們還要解決滾輪和兩側按鈕倒置的問題。在命令行中輸入
代碼:
復制代碼代碼如下:
xmodmap -e pointer = 1 2 3 6 7 4 5
將倒置的按鈕順序重新“正”過來!至此所有的設置完成,找個支持4、5鍵的流覽器來看看,比如 Firefox 。
怎麼樣,在linux下面,你也能方便的“前進”,“後退”了吧。
下面再談談其它的問題。
(一)由於每次啟動X後都需要手工執行xmodmap -e pointer = 1 2 3 6 7 4 5,怎麼才能自動執行呢?
這個本不屬於本文討論的范圍,可考慮到使用的方便還是,我還是來寫一點吧。
由於這個命令必須在每次啟動X後執行,將它寫在.bashrc等文件中是沒有用的。有的系統.xinitrc或者.xsession也不行。似乎問題很復雜,不同的linux發型版本和桌面系統都不一樣。
我以RedHat為例來說一下。
如果你使用Gnome,這麼做:在自己的目錄下建一個可執行腳本,比如叫mouse.sh
代碼:
復制代碼代碼如下:
#!/usr/bin/bash
xmodmap -e pointer = 1 2 3 6 7 4 5
保存後別忘了chmod +x mouse.sh
進入gnome,在設置-〉其它設置 中找到session,把mouse.sh加到啟動程序中即可。
如果你使用KDE,在自己的目錄下建一個.kdestart文件,同樣寫上
代碼:
復制代碼代碼如下:
#!/usr/bin/bash
xmodmap -e pointer = 1 2 3 6 7 4 5
即可。
(二)如何在多於一個鼠標的系統上(比如IBM筆記本)正確配置呢?
配置其實是一樣的,可問題在於xmodmap似乎只支持CorePointer,即第一個鼠標,這樣默認的配置,你的微軟鼠標滾輪是左右兩側鍵,“正”不過來了。
我的解決辦法是人工的禁止筆記本上自帶的那個鼠標,(不知道將USB鼠標設置成CorePointer行不行,我沒試過,嘿嘿)。