我最近得到了罗技 M500:
总线 002 设备 004:ID 046d:c069 Logitech, Inc. M500 激光鼠标
它有九个我可以识别的按钮:
最后两个快把我逼疯了。每次我尝试单击滚轮时,我不小心点击了“滚轮向左”按钮,Firefox 会转到上次访问的页面。这很烦人。
够简单了吧?只需找出 xev 显示的按钮并禁用它们即可。错误的!xev 不会生成“ButtonPress/ButtonRelease”事件,而是奇怪的“LeaveNotify/EnterNotify/KeymapNotify”对:
LeaveNotify 事件,序列号 40,合成 NO,窗口 0x4a00001,
根 0x94, subw 0x0, 时间 2344319, (104,86), 根:(113,207),
模式 NotifyGrab, 详细 NotifyAncestor, same_screen 是,
焦点是,状态 0
EnterNotify 事件,序列号 40,合成 NO,窗口 0x4a00001,
根 0x94, subw 0x0, 时间 2344319, (104,86), 根:(113,207),
模式 NotifyUngrab,详细 NotifyAncestor,same_screen 是,
焦点是,状态 0
KeymapNotify 事件,串行 40,合成 NO,窗口 0x0,
键:4294967188 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
现在可以肯定,4294967188(如果有帮助的话,-108 二进制补码作为 32 位整数)将是键码,对吧?又错了!水平轮左/右和侧后/前按钮的编号相同。
这是我的设备的 xinput 列表:
罗技USB激光鼠标id=15【从指针(2)】
报告7类:
类起源于:15。类型:XIButtonClass
支持的按钮:16
按钮标签:“按钮左”“按钮中间”“按钮右”“按钮滚轮向上”“按钮滚轮向下”“按钮水平轮左”“按钮水平轮右”“按钮侧”“按钮额外”“按钮前进”“按钮返回”“按钮任务”“按钮未知”“按钮未知”“按钮未知”“按钮未知”
按钮状态:
类起源于:15。类型:XIValuatorClass
评估者 0 的详细信息:
标签:Rel X
范围:-1.000000 - -1.000000
分辨率:1个单位/米
模式:相对
类起源于:15。类型:XIValuatorClass
评估员 1 的详细信息:
标签:Rel Y
范围:-1.000000 - -1.000000
分辨率:1个单位/米
模式:相对
类起源于:15。类型:XIValuatorClass
评估员 2 的详细信息:
标签:Rel Horiz Wheel
范围:-1.000000 - -1.000000
分辨率:1个单位/米
模式:相对
类起源于:15。类型:XIValuatorClass
评估员 3 的详细信息:
标签:Rel Vert Wheel
范围:-1.000000 - -1.000000
分辨率:1个单位/米
模式:相对
类起源于:15。类型:XIScrollClass
Valuator 2 的滚动信息
类型:2(水平)
增量:1.000000
标志:0x0
类起源于:15。类型:XIScrollClass
Valuator 3 的滚动信息
类型:1(垂直)
增量:-1.000000
标志:0x2(首选)
它似乎像往常一样映射按钮。那么当我编写一个循环调用“xinput query-state $DEVNO”的小脚本并按下可怕的按钮时会发生什么?你猜到了:
2个班级:
按钮类
按钮[1]=向上
按钮[2]=向上
按钮[3]=向上
按钮[4]=向上
按钮[5]=向上
按钮[6]=向上
按钮[7]=向上
按钮[8]=向上
按钮[9]=向上
按钮[10]=向上
按钮[11]=向上
按钮[12]=向上
按钮[13]=向上
按钮[14]=向上
按钮[15]=向上
按钮[16]=向上
ValuatorClass 模式=Relative Proximity=In
估价员[0]=538
估价员[1]=456
估价员[2]=-2
估值器[3]=-464
它们总是显示为“向上”,尽管它们显然是“向下”的。确实生成正确的 ButtonPress 事件(例如向左/向右)的鼠标按钮确实像它们应该的那样“向下”显示广告。
小智 6
我有一个罗技 M325,它也使用按钮 8 和 9 来左右倾斜滚轮。我使用这个脚本来禁用它们:
#!/bin/bash
set -eu
MOUSE_ID=$(xinput --list | grep Logitech | sed -r 's/.*id=([0-9]+).*/\1/')
if [ -n "$MOUSE_ID" ]; then
xinput set-button-map $MOUSE_ID 1 2 3 4 5 6 7 0 0
fi
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2458 次 |
| 最近记录: |