普通鼠标告别生硬滚动——Mac Mouse Fix 让百元鼠标拥有触控板手感
【免费下载链接】mac-mouse-fixMac Mouse Fix - Make Your $10 Mouse Better Than an Apple Trackpad!项目地址: https://gitcode.com/GitHub_Trending/ma/mac-mouse-fix
你盯着滚轮一下下"咔哒"跳动,翻页像坐电梯,还总差半拍错过双击。Mac Mouse Fix 拦截鼠标滚轮与按键事件,把普通鼠标调出接近 Apple 触控板的平滑滚动、手势滑动与按键映射。本文从安装、配置讲到源码实现,帮你完整上手。
先跑起来——从下载到首次生效
装之前先确认你的 macOS 版本,这决定该装哪一代:
| macOS 版本 | 推荐 Mac Mouse Fix 版本 |
|---|---|
| macOS 11 Big Sur 及以上 | 最新版(3.x) |
| macOS 10.13–10.15 | Mac Mouse Fix 2 最新版 |
| macOS 10.11–10.12 | Mac Mouse Fix 2.2.0 及以下 |
装好后按下述顺序走一遍,几分钟就能见效:
安装应用。在终端执行下面这行,或从官方网站下载安装包:
brew install mac-mouse-fix需要旧版本时,去项目的 Releases 页面找。
授予权限并打开开关。首次打开会要求授予"辅助功能"权限,同意后打开 "Enable Mac Mouse Fix" 开关。
验证是否生效。开关一开,即便关掉窗口、重启电脑,增强效果依然在线——真正干活的是后台 Helper 进程,不是主窗口。
它能替你做什么——三个高频场景
平滑滚动:让滚轮告别"咔哒"
你得到的是把逐格生硬的滚动,变成带惯性的丝滑滚动,松手后内容还会自然滑行收尾。
去 Scrolling 标签页调smooth(off / low / regular / high)和speed(system / low / medium / high)。trackpadSimulation默认开启,会发送触控板风格的 gesture scroll 事件,让 Xcode 这类应用也按触控板逻辑响应惯性滚动。高平滑度下快速甩轮会触发 fast scroll 加速,慢速微调时又收得精准。
手势模拟:用鼠标"双指滑动"
你得到的是按住某个按钮拖拽,就能模拟触控板的双指、三指滑动,切桌面、开 Mission Control、滚动导航全都能做。
在 Buttons 标签页把某按钮的 "Click and Drag" 动作设为 'Scroll & Navigate',拖拽方向即手势方向。凡是触控板双指滑动能做的事,这里都能等价完成。
按键重映射:把每个侧键都安排明白
你得到的是把中键、侧键映射成系统快捷键或自定义动作,一个键顶一组组合键。
把指针移进 "+" 区域,然后点按鼠标任意按键即可分配动作,支持单击、双击、按住、拖拽等多种触发。默认已注入 3 键 / 5 键模板(见 default_config.plist 的Constants.defaultRemaps),开箱即用,不用从零配置。
拆开看——双进程架构与关键源码
理解了这个架构,你就明白"关了窗口为什么还生效"。主应用(App/)只负责图形化配置;Helper/进程常驻后台,真正执行事件拦截与重映射。鼠标受 Helper 进程影响,而非主 App,所以开关一开、窗口可随手关掉。
核心逻辑集中在几个文件里,想深入时从这里读起:
- ScrollConfig.swift:把
smooth/speed映射到动画曲线与加速度曲线,是"手感"的源头。 - PointerConfig.swift:通过 Apple HID 驱动写入指针加速度曲线,并做轮询率补偿(基准 125 Hz)与 CPI 补偿(基准 1000 CPI),让不同硬件表现一致。
- Actions.h:动作执行入口,
executeActionArray:phase:按按下 / 抬起 / 组合三个阶段分别驱动。 - Config.h:配置单例,统一
config()/setConfig()/commitConfig()读写。
配置以 key-path 字典形式组织,默认值一目了然:
| 配置键 | 默认值 | 含义 |
|---|---|---|
Scroll.smooth | high | 平滑度,off / low / regular / high |
Scroll.speed | medium | 速度 / 灵敏度,system 表示沿用系统算法 |
Scroll.reverseDirection | true | 是否反转滚动方向 |
Scroll.trackpadSimulation | true | 是否发送触控板风格 gesture scroll |
Pointer.acceleration | 0.6875 | 指针加速度曲线索引 |
General.scrollKillSwitch | false | 菜单栏滚动总开关 |
真正的手感藏在动画曲线参数里(baseMsPerStep、dragCoefficient、stopSpeed等)与加速度曲线的 minSens / maxSens 取值中,全都集中在ScrollConfig.swift,想微调可以直接翻这份文件。
进阶玩法与实用技巧
用拖拽管理窗口👇 把某按钮的 Click and Drag 设为 'Scroll & Navigate',再配合 Swish 这类窗口管理器,按住按钮拖拽即可把窗口吸附到半屏、四分屏或全屏。触控板双指滑动能做的,这里都能等价完成。
用鼠标控制亮度、音量与媒体Mac Mouse Fix 能把键盘任意按键绑定到鼠标按钮,包括亮度、音量、媒体播放等特殊功能键。手边没有 Apple 键盘时,按住 Option (⌥) 就能在按键选择器里调出这些特殊键。
用菜单栏临时关功能在 General 标签页打开Show in Menu Bar,即可从菜单栏临时禁用平滑滚动等功能(对应scrollKillSwitch/buttonKillSwitch),专门应对个别不兼容的应用。
踩坑与排查——那些文档里没明说的
单击总要顿一下。原因是它在等你可能双击。把该按钮上所有"双击"动作删掉,延迟立刻消失。
某些侧键识别不到。特别是搭配 Logitech Options 等专有驱动协议的鼠标,部分按键无法被识别——这类鼠标用厂商私有协议而非标准 USB 协议通信。目前无完美方案,换标准协议鼠标最稳;Magic Mouse 则完全不生效。
倾斜滚轮只能横滚。倾斜滚轮的水平滚动会被处理得更自然、更易控,但没法用它触发切换桌面等其他动作。这是当前限制,属规划中功能。
卸载后仍有残留。把应用拖进废纸篓后,系统里仍留着配置等文件,因为 macOS 不允许应用在被删除时自行清理。主配置以 plist 形式持久化(含Scroll、Pointer、Remaps、General、License、State等键),建议用 AppCleaner 之类工具彻底清除。
指针加速度关不掉。Mac Mouse Fix 本身不提供开关。若系统在 macOS 14 Sonoma 及以上,可去 系统设置 > 鼠标 > 高级… > 指针加速度 关闭。
版本、授权与卸载
- Mac Mouse Fix 2 及更早:永久免费。
- Mac Mouse Fix 3:30 天免费试用,之后一次性付费。
- 授权覆盖:你的所有 Mac;同一 Apple 账户可经 iCloud 自动同步;覆盖所有 3.x 版本(未来 4.0 可能需重购)。
- 卸载:拖进废纸篓,再用 AppCleaner 清理残留。
- 开源承诺:3.x 起继续遵循 MMF License 保持开源,可自由用于自己的项目,只要不直接发布一份简单副本。
参与项目
- 提反馈:通过官方反馈渠道提交 bug 与功能建议,作者尤其想听"应用级设置"落地前的真实使用场景。
- 做翻译:项目支持多语言,可参与翻译,或反馈缺失 / 不理想的译文。
- 提代码:欢迎 Pull Request;不确定方向时,可先提交只含改动说明、几乎不含代码的 PR,让作者确认后再实现,避免返工。
- 资金支持:应用内购买,或在代码托管平台按月赞助开发者。
写在最后
回到开头那个"咔哒"作响的滚轮——装好 Mac Mouse Fix、调好smooth和speed,它就能把百元鼠标变成指尖上的触控板。适合追求触控板级滚动、想用侧键驱动系统快捷键、或做窗口管理效率改造的人。想再往下钻,就从 ScrollConfig.swift 和 PointerConfig.swift 这两份曲线定义读起,手感的答案都藏在里面。
【免费下载链接】mac-mouse-fixMac Mouse Fix - Make Your $10 Mouse Better Than an Apple Trackpad!项目地址: https://gitcode.com/GitHub_Trending/ma/mac-mouse-fix
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考