使用 Magic Mouse (苹果) 滚动 (左/右)

使用 Magic Mouse (苹果) 滚动 (左/右)

我有一台装有 Ubuntu 的 iMac,还有它的无线设备(鼠标、键盘),然而有些东西让我很烦,那就是 MagicMouse(Mac 的无线鼠标)的滚动也在左右部分操作。

如何停用这些区域的滚动并且仅在中心起作用?

有任何想法吗?

答案1

如果你熟悉使用终端,那么有一个相对地使用 来停用按钮的简单方法xinput(它也可以用于禁用单击中间按钮)。如果您的计算机上未安装 xinput,只需打开终端并使用sudo apt-get install xinput

以下是永久禁用左右滚动的步骤:

  1. 在任何目录中,使用该xinput命令。这将显示已连接设备的列表——这是我的一个例子:
⎡ Virtual core pointer                      id=2    [master pointer  (3)]
⎜   ↳ Virtual core XTEST pointer                id=4    [slave  pointer  (2)]
⎜   ↳ MSFT0001:02 04F3:304B Mouse               id=11   [slave  pointer  (2)]
⎜   ↳ MSFT0001:02 04F3:304B Touchpad            id=12   [slave  pointer  (2)]
⎜   ↳ Logitech M705                             id=9    [slave  pointer  (2)]
⎣ Virtual core keyboard                     id=3    [master keyboard (2)]
    ↳ Virtual core XTEST keyboard               id=5    [slave  keyboard (3)]
    ↳ Power Button                              id=6    [slave  keyboard (3)]
    ↳ Video Bus                                 id=7    [slave  keyboard (3)]
    ↳ Power Button                              id=8    [slave  keyboard (3)]
    ↳ Integrated Camera: Integrated C           id=10   [slave  keyboard (3)]
    ↳ Ideapad extra buttons                     id=13   [slave  keyboard (3)]
    ↳ AT Translated Set 2 keyboard              id=14   [slave  keyboard (3)]
    ↳ Google Pixel USB-C earbuds                id=15   [slave  keyboard (3)]

MSFT0001:02 04F3:304B Mouse现在,对于我的计算机,除了我实际插入的鼠标( )之外,它还列出了通用鼠标Logitech M705。如果您不确定哪个鼠标是您的,请尝试拔下它,再次在终端中运行命令,然后查找丢失的设备。

  1. 获取鼠标的 ID(我的 Logitech 鼠标的 id=9)并使用以下命令获取有关计算机识别的输入类型的更多信息: xinput list <mouse-id-here>

这应该打印出类似下面的内容:

Logitech M705                               id=9    [slave  pointer  (2)]
    Reporting 7 classes:
        Class originated from: 9. Type: XIButtonClass
        Buttons supported: 20
        Button labels: "Button Left" "Button Middle" "Button Right" 
            "Button Wheel Up" "Button Wheel Down" "Button Horiz Wheel Left" 
            "Button Horiz Wheel Right" "Button Side" "Button Extra" "Button Forward" 
            "Button Back" None None None None None None None None None
        Button state:
        Class originated from: 9. Type: XIValuatorClass
        Detail for Valuator 0:
          Label: Rel X
          Range: -1.000000 - -1.000000
          Resolution: 0 units/m
          Mode: relative
        Class originated from: 9. Type: XIValuatorClass
        ... (more here)

这里需要注意的重要部分是列出的按钮标签。查看标签并找到"Button Horiz Wheel Left""Button Horiz Wheel Right"。找出它们的位置(我的按钮在列表中排在第 6 和第 7 位)。

  1. 现在您有了这两个位置,请使用以下命令:

xinput get-button-map <mouse-id-here>

这应该会向你显示一个数字列表,比如对我来说是 1 到 20:

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 

复制该列表(如果您在终端中,可以使用ctrl-shift-Ccommand-shift-CMac 执行此操作)。现在使用xinput set-button-map <mouse-id-here> <list-of-numbers>,粘贴数字并将代表左滚动和右滚动的两个数字替换为零。所以,对我来说它看起来像:

xinput set-button-map <mouse-id-here> 1 2 3 4 5 0 0 8 9 10 11 12 13 14 15 16 17 18 19 20

这样你的鼠标就不再左右滚动了。

  1. 如果您不想每次启动计算机时都执行此操作,只需打开“启动应用程序偏好设置”(如果您在 Ubuntu 中搜索它,它应该会显示出来),单击“添加”,然后将完整的 set-button-map 命令粘贴到字段中command。现在,它应该会在计算机启动时自动运行此命令。但是,如果您断开并重新连接鼠标,则无法保证它会起作用——您可能必须在插入鼠标的情况下重新启动计算机才能使更改生效。

希望这可以帮助!

编辑:我今天了解到设备 ID 可能会在启动之间发生变化。这让事情变得有点困难,但并非无法忍受。

基本上,您需要使用此命令从 xinput 中提取 ID 号:

xinput | grep <device-name> | awk -F'[= \t]+' '{print $7}'

请注意,这个“7”可能对你来说是一个不同的数字——只需反复尝试不同的数字,直到它返回你的鼠标 ID。然后,在启动文件中输入以下命令:

xinput set-button-map "$(xinput | grep <device-name> | awk -F'[= \t]+' '{print $7}')" 1 2 3 4 5 0 0 8 9 10 11 12 13 14 15 16 17 18 19 20

再次确保将“7”替换为适合您的数字。我知道这个答案已经彻底脱离了相对简单的状态,并陷入了 grep/regex/awk 的遗忘之中,但是嘿,它对我有用:)。

祝你好运!

相关内容