3 步搞定按设备滚动方向设置:Scroll Reverser 完整使用指南
【免费下载链接】Scroll-ReverserPer-device scrolling prefs on macOS.项目地址: https://gitcode.com/gh_mirrors/sc/Scroll-Reverser
你的 Mac 可能同时连着触控板和鼠标:用触控板时希望"自然滚动"(手指上滑、内容上滑),换成鼠标后又想要 Windows 那种"传统滚动"。macOS 系统设置里只能全局改一个方向,换来换去非常折腾。Scroll Reverser 就是为解决这个问题而生的开源小工具,它允许你为触控板和鼠标分别设置独立的滚动方向,装好后一劳永逸。下面这份指南,我带你从下载、授权到进阶调优全部走一遍。
为什么 macOS 自带设置满足不了你
macOS 的"自然滚动"开关是全局生效的,它只管一个方向,不会区分输入设备。于是很多人陷入两难:
- 触控板用自然滚动最顺手,鼠标却习惯传统滚动
- 绘图板、外接鼠标、笔记本触控板混用,每次切换都别扭
- 水平滚动和垂直滚动想分别控制,系统根本没这个选项
Scroll Reverser 把这些全部拆开,让你按需组合:垂直、水平独立设,触控板、鼠标独立设,互不干扰。它不像系统设置那样粗暴地"一刀切",而是聪明地识别滚动事件来自哪个设备,再套用对应的规则。
三步完成安装与授权
整个过程用不了 3 分钟。
第一步:获取应用。从仓库克隆源码自行构建,或者直接下载官方发布的现成版本。想从源码构建的话:
git clone https://gitcode.com/gh_mirrors/sc/Scroll-Reverser克隆后还要执行git submodule update --init拉取 BuildScripts 子模块,否则会编译失败。另外项目使用开发者 ID 证书签名,你本机没有作者的证书时会报错,换成你自己的证书即可。调试版应用没有图标、版本号显示为 99999,这是正常现象,功能完整可用。
第二步:授予两项权限。首次启动会弹出欢迎窗口,引导你完成授权。Scroll Reverser 要监听系统事件流,需要两项隐私权限:
- 辅助功能:在 系统设置 → 隐私与安全性 → 辅助功能 中勾选 Scroll Reverser
- 输入监控:macOS 10.15 及以上还需要在 隐私与安全性 → 输入监控 中授权
缺少任何一项,应用都无法启用反转功能——它会在设置窗口里用醒目的状态提示你当前缺哪个,点一下按钮就能跳转到对应设置页。
第三步:打开主开关。在菜单栏找到 Scroll Reverser 的图标,勾选"启用"选项,滚动反转立刻生效,无需重启系统。
设置面板逐个拆解
偏好设置窗口分两个标签页,逻辑很清晰。
滚动设置页管的是"怎么反转":
- 垂直/水平分开控制:网页浏览、文档阅读主要用垂直方向;电子表格、PDF 横排时单独调整水平方向,互不影响
- 触控板/鼠标独立设置:核心功能所在。触控板保持自然滚动、鼠标用传统滚动,两边各设各的
- 离散滚动步长滑块:针对传统滚轮鼠标的逐格滚动,可以调节每一步滚动的灵敏度,范围 0 到 100,默认 3。数值越大,滚一格页面动得越多
应用设置页管的是"什么时候工作":
- 登录时启动:勾选后开机自动运行,省得每次手动打开
- 菜单栏图标:可以隐藏图标,适合不喜欢菜单栏太挤的人
- 检查更新:基于 Sparkle 框架实现自动更新,还能订阅测试版更新通道
设置窗口有个贴心细节:如果你上次退出时窗口是开着的,下次启动它会自动恢复,不打断你的工作流。
它凭什么判断滚动来自哪个设备
原理藏在MouseTap.m这个文件里,全项目最核心的代码就这一处,其余基本都是界面代码。它通过安装事件捕获器(Event Tap)接入系统事件流,实时看到两类事件:
- 手势事件:监听触控板上的触点数量,检测到两个或更多手指接触,就认为是触控板在操作
- 滚动事件:其他滚动输入统一归为鼠标
这套判断算法是渐进式的:连续滚动事件(如妙控鼠标、妙控板)会结合"刚才有几根手指"和"距上次触摸的间隔"来推断来源;无法判断时就沿用上一次的结果,保证不抖动、不误判。值得一提的是,它把手势监听和滚动修改拆成了两个独立的 tap——手势用只读的被动 tap,修改滚动才用主动 tap,这样不会触发额外的权限弹窗,也不影响"摇一摇定位光标"这类系统手势。
性能上它很克制:事件处理路径刻意不用 NSLog 输出日志(那会拖慢事件处理),而是写进一个轻量级缓冲区。调试信息只在你想看的时候才显示,平时零打扰。
隐藏技巧:菜单栏图标比你想象的好用
菜单栏图标不只是状态显示,它本身就是快捷键入口:
- Option + 点击图标:打开调试窗口,实时查看事件日志——每个滚动事件来自哪个设备、是否反转、手指数量、滚动步长等参数一目了然。排查"某应用滚动没反应"这类问题,这里是最佳突破口
- 右键(或 Control + 点击)图标:一键切换整体开关,临时想恢复原始方向时比进设置快得多
另外,如果你在远程桌面或虚拟机里用 Scroll Reverser,记得打开"仅处理原始输入事件"选项。开启后,它只反转本机真实输入的滚动,忽略来自其他应用注入的滚动事件,避免远端控制时方向被二次反转、越滚越乱。
还有个少为人知的小事:macOS 从睡眠唤醒后,偶尔会停止向应用派发手势事件,导致设备识别失灵。Scroll Reverser 已经内置了"唤醒后自动重启"机制,静默恢复,通常你根本察觉不到。
常见疑问速答
问:装了之后某些应用滚动没反应?先检查"仅处理原始输入事件"是否误开,再重启那个应用。极少数用自定义滚动实现的应用可能不走系统事件流,这种情况基本无解,但实际很少遇到。
问:触控板和鼠标总是认错?先重新插拔外接设备,再重启 Scroll Reverser;如果还不行,检查两项隐私权限是否被系统重置了。
问:休眠唤醒后功能失效?应用会自动重启来恢复,这是已知系统 bug 的官方对策。如果实在没恢复,右键菜单栏图标关掉再打开即可复位。
问:需要担心的性能开销吗?完全不用。它常驻后台的内存占用通常不到 5MB,事件处理路径高度精简,几乎感知不到它的存在。
写在最后
Scroll Reverser 不是什么功能堆砌的大块头,它的定位非常克制:只解决"按设备独立设置滚动方向"这一件事,但把它做透了。从 2011 年发布至今持续维护,支持包括简繁体中文在内的二十多种语言,还内置了 AppleScript 开关接口,方便自动化脚本控制。如果你每天在触控板和鼠标之间来回切换,花三分钟装上它,之后每次操作都能省下一点"别扭"——这笔投入很划算。
【免费下载链接】Scroll-ReverserPer-device scrolling prefs on macOS.项目地址: https://gitcode.com/gh_mirrors/sc/Scroll-Reverser
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考