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

2015-04-09 12:21:54 +08:00
 Sylv

我一直以来是使用 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 的同学改用此方法,这样又可以减少一个常驻软件了。

13711 次点击
所在节点    macOS
12 条回复
old9
2015-04-09 13:05:34 +08:00
感谢!
吐槽一下 Karabiner 语法诡异并充斥着各种隐藏属性的配置,真是折磨死人。
Sylv
2015-04-09 13:20:37 +08:00
@old9 是,Karabiner 无比强大,但可能是因为作者是日本人的原因,英文文档一直是缺失的,各种语法和功能没有说明。要想个性化 Karabiner 配置得花些功夫去研究 sample 代码,加上去翻它的 Github。不过作者还是挺负责的,Github 上的各种 issue 都会有回应,甚至立马就加上了功能。
fly2never
2015-04-09 13:37:05 +08:00
赞,以前喜欢折腾, 现在还是都把两者改成了非自然方向, 不折腾
jsfaint
2015-04-09 14:44:36 +08:00
装了karabiner,输入会卡顿……好诡异……
est
2015-04-09 15:45:04 +08:00
Scroll Reverser + SmoothMouse 路过。
ytzong
2015-04-09 16:52:41 +08:00
感谢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
2015-04-10 08:22:18 +08:00
@jsfaint 我 Karabiner 用一段时间了,没特别注意到有卡顿,但想来 Karabiner 多少还是会造成些输入延迟的,毕竟它需要劫持键盘的输入进行判断和处理,但理应不会造成太大的影响。
Sylv
2015-04-10 08:23:10 +08:00
@ytzong 我没用过 Magic Mouse,我还以为用触摸来滚动的 Magic Mouse 用自然滚动方向会更顺手,看来鼠标还是保持传统的滚动方向比较舒服。吐槽苹果居然不提供这个设置,还得用户装第三方软件来实现。
jsfaint
2015-04-10 08:53:06 +08:00
@Sylv 原生app下有影响不过不明显,我登陆到远程桌面的时候,影响就很明显了。关掉karabiner的时候很流畅,打开输入就卡顿了
Superoutman
2015-04-10 10:09:14 +08:00
USB Overdrive 用起来无任何不良影响
Sylv
2015-04-10 10:31:16 +08:00
@Superoutman 毕竟是收费软件,若只用来解决这个问题有点大材小用了
Ellison
2015-04-19 13:25:55 +08:00
赞,终于可以弃用Scroll Reverser了

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

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

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX