无法使用 hwdb 将“btn_middle”重新映射到 libinput

无法使用 hwdb 将“btn_middle”重新映射到 libinput

我在 Ubuntu 22.04、Gnome Shell 42、Wayland 上使用 Logitech Trackman Marble Trackball。

我希望用其中一个额外的侧键模拟鼠标中键单击,但似乎我可以合成任何类型的按钮除了中间的按钮。

  • 我已经创建了/etc/udev/hwdb.d/71-logitech-trackman.hwdb如下文件:
evdev:name:Logitech USB Trackball:*
 KEYBOARD_KEY_90004=btn_middle

然后我运行:

sudo systemd-hwdb update
sudo udevadm trigger

并物理重新连接设备。

  • 运行sudo udevadm info /dev/input/event8 | grep btn_middle表明映射已经生效。
  • 运行sudo evtest /dev/input/event8输出正确的映射,如下所示:
Event: time 1689266776.764313, type 4 (EV_MSC), code 4 (MSC_SCAN), value 90004
Event: time 1689266776.764313, type 1 (EV_KEY), code 274 (BTN_MIDDLE), value 1
  • 但是,sudo libinput debug-events --device /dev/input/event8当我按下重新映射的按钮时,运行不会发出任何输出(尽管它确实为所有其他事件输出了正确的行)。

奇怪的是,libinput如果我选择任何其他目标事件(例如btn_leftbtn_right,甚至是设备没有的其他按钮,例如 ) ,它都会发出输出btn_back,并且这些点击会正确反映在 GUI 中。似乎只有中间按钮无法模拟。

如果我尝试重新映射四个物理按钮中的任何一个,行为是相同的。

什么原因会阻止鼠标中键映射工作?

答案1

我有类似的问题并解决了,尝试更改你的.hwdb 文件:

evdev:input:*
 KEYBOARD_KEY_90004=btn_middle

相关内容