总结:如何将物理中间按钮映射到与模拟中间按钮不同的键?(Emulate3Buttons)
当使用 Kensington Expert Mouse 时,这 4 个按钮是物理按钮,分别为左、右、中间和后退。要获得后退和前进,只需在 xorg.conf 中添加适当的部分(后退 -> 前进和中间 -> 后退)即可进行简单的重新绑定
┌─┬─┐ ┌─┬─┐
│M│B│ │B│F│
├─O─┤ -> ├─O─┤
│L│R│ │L│R│
└─┴─┘ └─┴─┘
如果我现在此外想要一个中间按钮,手册页提到了选项“Emulate3Buttons”,它通过同时按下左键和右键来模拟单击中间按钮。
我现在的问题是这样的:“Emulate3Buttons”模拟了物理的中间按钮,由于我之前必须映射中间->返回,所以我只会得到另一个返回按钮。
┌─┬─┐
│B│F│
├─O─┤
│L│R│
└\┴/┘
B
我将如何结束:
┌─┬─┐
│B│F│
├─O─┤
│L│R│
└\┴/┘
M
答案1
显然这个问题已经得到解答,修复甚至已经合并到 Linux 代码库中 https://unix.stackexchange.com/questions/314795/xinput-button-mapping-and-middle-button-emulation
我所做的基本上是创建文件 /etc/X11/xorg.conf.d/99-kensington.conf (以 root 身份)
Section "InputClass"
Identifier "Kensington Trackball"
Driver "evdev"
MatchProduct "Kensington Expert Mouse"
Option "ButtonMapping" "1 8 3 4 5 6 7 9 0 2"
Option "Emulate3Buttons" "true"
Option "Emulate3Button" "10"
EndSection
只要保持“number-text.conf”的相同格式,名称 99-kensington.conf 就可以更改。
标识符并不重要。
MatchProduct 是设备名称的子字符串。您可以通过执行“xinput --list”(↳ 和 id= 之间)来获取它。如果您只有一个鼠标,则不需要这个。
ButtonMapping 应该是众所周知的,第二个数字是物理 MIDDLE,映射到 BACK (8)。使用 Emulate3Button,您可以指定应模拟哪个物理按钮,在本例中为物理 10。这就是为什么 ButtonMapping 中的第 10 个数字是 MIDDLE (2)。(0 表示按钮已禁用)
如果您需要更多信息:https://www.systutorials.com/docs/linux/man/4-evdev/