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