使用Btnx后,一个鼠标键触发两个事件的解决

声卡/显卡/打印机/USB设备等硬件问题(网卡问题请发上面的网卡板块)
回复
头像
EI
帖子: 38
注册时间: 2008-03-31 16:13
来自: 山东济南
送出感谢: 0
接收感谢: 0
联系:

使用Btnx后,一个鼠标键触发两个事件的解决

#1

帖子 EI » 2008-04-18 10:36

说一下我的鼠标“一键多重事件”的解决:

鼠标:Delux M500BT,共五个按键:左,中,右,(左侧)功能键一,(左侧)功能键二,如图:
图片

我在Btnx中,将功能键一设置为:Ctrl+PageDown;功能键二设置为:Ctrl+PageUp;中键点击设置为:Ctrl+W。这样在Firefox中,利用2个功能键实现了标签页的前后滚动,中键实现了任意位置关闭标签页的功能。然而,功能键一和中键都没有问题,当点击功能键二时,却总是同时弹出右键菜单,发生了“一键多重事件”的问题。

参考了btnx——多键鼠标完美解决方案作者nowhere的解决方法:
解决办法是先运行在终端中运行xev,确定出问题的键的序号。例如,用xev查出有问题的是第6键。
先查看问题键的序号,得出:
左键:1
中键:2
右键:3
滚轮向前滚动:4
滚轮向后滚动:5
功能键一:2 (序号时有时无)
功能键二:3 ( 问题键 )

发现功能键的序号竟和左右键序号一样!而不是nowhere说的识别出了第6键。难道是xev的显示出了问题?还是???于是先按nowhere的方法进行试验:
$ xmodmap -e "pointer = 1 2 9 4 5 6 7 8 3"
发现改变键的映射后,功能键二的问题是解决了,但是鼠标右键(序号3)也同时不管用了!
看来,xev没错,功能键估计压根没被系统识别出来,导致序号和左右键的一样。怎么解决功能键的识别问题?我转而开始修改xorg.conf。
这是原来的xorg.conf中鼠标部分:
Section "InputDevice"
Identifier "Configured Mouse"
Driver "mouse"
Option "CorePointer"
Option "Device" "/dev/input/mice"
Option "Protocol" "ImPS/2"
Option "ZAxisMapping" "4 5"
Option "Emulate3Buttons" "true"
EndSection
试着加入:Option "Buttons" "7", 重启,不管用。将Option "ZAxisMapping" "4 5"改为Option "ZAxisMapping" "6 7"也不管用,加入自定义映射:Option "ButtonMapping" "1 2 3 4 5 6 7"还是不管用。最后,看了其他人成功的配置后,发现问题出在协议上:
Option "Protocol" "ImPS/2"
系统默认的协议是ImPS/2,但是这个协议不支持按键按键多于5个(左1,右1,滚轮算3个)的鼠标,应该换成:ExplorerPS/2,这样功能键就能顺利识别出。

最终的xorg.conf:
Section "InputDevice"
Identifier "Configured Mouse"
Driver "mouse"
Option "CorePointer"
Option "Device" "/dev/input/mice"
Option "Protocol" "ExplorerPS/2"
Option "Buttons" "7"
Option "ZAxisMapping" "4 5"
Option "Emulate3Buttons" "false"
EndSection
现在终端运行$xev,两个功能键就被识别为button 8和button 9了。

参考:
ManyButtonsMouseHowto
设置微软Intellimouse和罗技Mouseman鼠标按键
alal001
帖子: 27
注册时间: 2008-04-13 6:42
送出感谢: 0
接收感谢: 0

#2

帖子 alal001 » 2008-04-18 14:10

补充一下 我的罗技MX310
用DEB0.4.7包也是可以安装的 不要要自己建文件夹
如下:
cd /etc
sudo mkdir btnx
然后点deb包就可以装了
BTW 那个网站有0.4.9的 可我怎么也装不上0.4.7又只有包 只好自己想办法装了
回复

回到 “常用硬件支持”