使用轨迹球滚动重新映射 Xinput/libinput 按钮

使用轨迹球滚动重新映射 Xinput/libinput 按钮

因此,我正在使用轨迹球,并且已将其配置为轨迹球滚动。我现在想做的是重新映射原始滚轮以用于某些不同的功能。问题是,当重新映射它们时,轨迹球滚动也会重新映射到我映射按钮的任何功能。

根据我的理解,这种情况不应该发生,它应该发送关键事件 4 5 6 7,无论那些原始按钮做了什么。就像重新映射时普通鼠标按钮一样。

到目前为止,我尝试的是将其他按钮重新映射到滚轮的原始功能,例如按钮 12 现在用于滚动并重新映射到 5,然后将轨迹球滚动功能映射到该按钮,但这也没有'不工作。我为此使用了 evdev,因为我找不到任何有关如何使用 libinput 重新映射轨迹球滚动轴的信息。

我尝试过的配置:

Section "InputClass"
    Identifier      "ELECOM TrackBall Mouse HUGE TrackBall"
    MatchProduct    "ELECOM TrackBall Mouse HUGE TrackBall"
    MatchIsPointer  "on"
    MatchDevicePath "/dev/input/event*"
    Driver          "evdev"
    Option          "SendCoreEvents" "true"

    Option "Buttons"            "12"
    Option "ButtonMapping"      "1 10 3 11 12 0 0 0 4 5 6 7"
    Option "EmulateWheel"       "true"
    Option "EmulateWheelButton" "3"
    Option "YAxisMapping"       "9 10"
    Option "XAxisMapping"       "11 12"

EndSection

我希望我的配置如下:

Section "InputClass"
    Identifier "ELECOM TrackBall Mouse HUGE TrackBall"
    MatchProduct "ELECOM TrackBall Mouse HUGE TrackBall"
    Driver "libinput"
    Option "ButtonMapping" "1 12 3 14 15 9 8 18 19 10 11 2"
    Option "Scrollmethod" "button"
    Option "ScrollButton" "2"
EndSection

按钮应像以前映射的那样工作,但轨迹球的滚动功能应始终发送用于滚动的键 4、5、6 和 7,无论最初具有该功能的键映射到什么。

也许有一个我错过的设置或其他我忘记的东西,但经过几个小时的尝试后我找不到任何与此相关的信息。

对于正确来源的任何帮助或提示将不胜感激。

相关内容