Sylv
V2EX  ›  macOS

使用 Karabiner 替代 Scroll Reverser 设置鼠标滚动方向反转

  •  2
     
  •   Sylv · Apr 9, 2015 · 14854 views
    This topic created in 4066 days ago, the information mentioned may be changed or developed.

    我一直以来是使用 Scroll Reverser 来设置,在触摸板的滚动方向为自然时,使外置鼠标的滚轮保持传统的滚动方向。

    但最近我发现在开启 Scroll Reverser 后,在触摸板上用两指快速连续多次滚动时,偶尔会有几下滚动被识别成了相反方向,很扰人,退出 Scroll Reverser 后就正常了。之前没有注意到这个现象,不知道是系统还是 Scroll Reverser 的问题,或者还是新装了什么软件造成的冲突。

    根据 Scroll Reverser 官网的 FAQ,Scroll Reverser 应该是通过检测是否有两个以上的指头放在触摸板上来判断出用户是不是正在使用触摸板来滚动,若少于两个指头在触摸板上就认为是正在用外置鼠标来进行滚动。
    因此我猜测出现我这种情况的原因是,在快速滚动时,手指在触摸板上停留的时间较短,导致 Scroll Reverser 因为未知原因偶尔无法正确检测到触摸板上有两个手指,于是被认为是正在用鼠标滚轮滚动,便将滚动方向进行了错误的反转。

    搜索并测试后发现强大的 Karabiner 也可以实现反转滚动方向的功能,并且 Karabiner 可以根据正在使用设备的 Vendor ID / Product ID 来区分触摸板和外置鼠标,这样就不会出现上述 Scroll Reverser 的问题了。

    以下配置代码设置了对任何非苹果输入设备的滚动方向进行反转,这样就能保持苹果的触摸板和 Magic Mouse 的自然滚动方向,而反转其它厂商鼠标的滚动方向为传统方式。将代码添加到 Karabiner 的 private.xml 配置文件中并开启设置就搞定了。

    <item>
      <name>Reverse Vertical Scrolling for Mouse</name>
      <identifier>private.reverse_vertical_scrolling_mouse</identifier>
      <device_not>
        DeviceVendor::APPLE_COMPUTER,
        DeviceProduct::ANY
      </device_not>
      <autogen>
        __FlipScrollWheel__
        <!-- reverse vertical scrolling -->
        Option::FLIPSCROLLWHEEL_VERTICAL
      </autogen>
    </item>
    

    推荐原本有同时使用 Scroll Reverser 和 Karabiner 的同学改用此方法,这样又可以减少一个常驻软件了。

    Supplement 1  ·  Oct 15, 2018

    Karabiner 的继任者 Karabiner-Elements 目前(2018-10-14)仍未支持滚动反转功能,而且目测近期没有添加此功能的计划:https://github.com/tekezo/Karabiner-Elements/issues/302

    推荐两个替代品:

    BetterTouchTool

    1.9.3 及之后版本添加了反转鼠标滚轮的功能。

    BetterTouchTool

    Mos

    Mos 是 V2EX 友 @cbais7890 写的一个平滑鼠标滚轮效果的工具,平滑滚轮效果非常赞,而且也有设置鼠标滚动方向的功能,推荐使用。

    https://github.com/Caldis/Mos

    https://www.v2ex.com/t/337190

    Mos

    12 replies    2015-04-19 13:25:55 +08:00
    old9
        1
    old9  
       Apr 9, 2015
    感谢!
    吐槽一下 Karabiner 语法诡异并充斥着各种隐藏属性的配置,真是折磨死人。
    Sylv
        2
    Sylv  
    OP
       Apr 9, 2015
    @old9 是,Karabiner 无比强大,但可能是因为作者是日本人的原因,英文文档一直是缺失的,各种语法和功能没有说明。要想个性化 Karabiner 配置得花些功夫去研究 sample 代码,加上去翻它的 Github。不过作者还是挺负责的,Github 上的各种 issue 都会有回应,甚至立马就加上了功能。
    fly2never
        3
    fly2never  
       Apr 9, 2015
    赞,以前喜欢折腾, 现在还是都把两者改成了非自然方向, 不折腾
    jsfaint
        4
    jsfaint  
       Apr 9, 2015
    装了karabiner,输入会卡顿……好诡异……
    est
        5
    est  
       Apr 9, 2015
    Scroll Reverser + SmoothMouse 路过。
    ytzong
        6
    ytzong  
       Apr 9, 2015
    感谢LZ,忍 Scroll Reverser 很久了。改了一个只反转 Magic Mouse 的配置

    <?xml version="1.0"?>
    <root>
    <item>
    <name>Reverse Vertical Scrolling for Mouse</name>
    <identifier>private.reverse_vertical_scrolling_mouse</identifier>
    <device_only>DeviceVendor::APPLE_COMPUTER,DeviceProduct::MAGIC_MOUSE</device_only>
    <autogen>
    __FlipScrollWheel__
    <!-- reverse vertical scrolling -->
    Option::FLIPSCROLLWHEEL_VERTICAL
    </autogen>
    </item>
    </root>
    Sylv
        7
    Sylv  
    OP
       Apr 10, 2015   ❤️ 1
    @jsfaint 我 Karabiner 用一段时间了,没特别注意到有卡顿,但想来 Karabiner 多少还是会造成些输入延迟的,毕竟它需要劫持键盘的输入进行判断和处理,但理应不会造成太大的影响。
    Sylv
        8
    Sylv  
    OP
       Apr 10, 2015
    @ytzong 我没用过 Magic Mouse,我还以为用触摸来滚动的 Magic Mouse 用自然滚动方向会更顺手,看来鼠标还是保持传统的滚动方向比较舒服。吐槽苹果居然不提供这个设置,还得用户装第三方软件来实现。
    jsfaint
        9
    jsfaint  
       Apr 10, 2015
    @Sylv 原生app下有影响不过不明显,我登陆到远程桌面的时候,影响就很明显了。关掉karabiner的时候很流畅,打开输入就卡顿了
    Superoutman
        10
    Superoutman  
    PRO
       Apr 10, 2015
    USB Overdrive 用起来无任何不良影响
    Sylv
        11
    Sylv  
    OP
       Apr 10, 2015 via iPhone
    @Superoutman 毕竟是收费软件,若只用来解决这个问题有点大材小用了
    Ellison
        12
    Ellison  
       Apr 19, 2015
    赞,终于可以弃用Scroll Reverser了
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   3077 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 41ms · UTC 14:04 · PVG 22:04 · LAX 07:04 · JFK 10:04
    ♥ Do have faith in what you're doing.