模拟鼠标按钮的映射 - Linux

模拟鼠标按钮的映射 - Linux

总结:如何将物理中间按钮映射到与模拟中间按钮不同的键?(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/

相关内容