☰
Mac Mouse Fix 教程:三步把普通鼠标变成比触控板更好的输入设备
2026/10/14 3:11:37 网站建设 项目流程

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 是一个开源的 macOS 鼠标增强工具:滚轮平滑滚动、触控板手势模拟(窗口吸附、Mission Control、App Exposé)、鼠标按键任意重映射到系统快捷键——一套工具就能让十几块钱的普通鼠标成为和 Apple Trackpad 比肩的日常输入设备。下面按"安装 → 配置 → 排错 → 原理"的顺序,把你需要知道的讲一遍。

Mac Mouse Fix 到底能干什么

先说清一个容易误解的点:这个工具是双进程架构——主 App 只负责配置界面,真正的输入处理由后台的 Helper 进程完成。所以只要你打开过"Enable Mac Mouse Fix"总开关,关闭 App 甚至重启电脑,功能都持续生效,不需要把它加入登录项。

官方特意提醒过:如果你发现开机时 Mac Mouse Fix 窗口会自动打开,多半是误把它加成了 Login Item,在"系统设置 > 通用 > 登录项"里移除即可。

核心能力可以拆成四块:

  • 平滑滚动:滚轮的离散档位事件被拦截后重算,输出成连续的触控板式滚动,smooth、speed、反向滚动、触控板模拟等参数都能调;
  • 按键重映射:任意鼠标按键都能绑定 Click / Double Click / Click and Drag / Click and Scroll 等触发方式,目标可以是系统动作(Mission Control、Launchpad、Smart Zoom)或任意键盘按键;
  • 手势模拟:按住某个键拖动时,合成双指 / 三指触控板手势;
  • 指针速度调整:独立于系统加速度,sensitivity与acceleration单独可调。

按键绑定在 Buttons 标签页完成:把鼠标指针移进 "+" 输入框,然后直接按你的实体鼠标按键完成"捕获",下方列表里为该按键选触发动作即可。

顺便解释"捕获(capture)"的含义:按键被 Mac Mouse Fix 捕获后,其他应用就收不到它的点击了。这是后面一些"按键失灵"问题的根源,官方在 Support/Guides/CapturedButtonsMMF3.md 里有专门说明。

三步完成安装:官网、Homebrew 与旧系统版本

第一步,装最新版。去项目官网下载安装包拖入"应用程序",或者在终端跑 Homebrew 命令:

brew install mac-mouse-fix

之后用brew upgrade mac-mouse-fix保持更新即可。

第二步,老系统对照下表选版本。最新版(Mac Mouse Fix 3)面向 macOS 11 Big Sur 及以后,更老的系统请按表选择:

你的 macOS 版本应安装的 Mac Mouse Fix 版本说明
11 Big Sur 及更新最新版(Mac Mouse Fix 3)官方目标平台;Apple Silicon 上 100% 原生运行,无 Rosetta 转译
10.13 High Sierra – 10.15 CatalinaMac Mouse Fix 2 最新版3.0.0 及以后勉强能跑,但界面显示异常、部分功能可能失效
10.12 Sierra / 10.11 El Capitan2.2.0 或更早系统过旧,仅老版本支持

历史版本均可在项目 Releases 页面下载。

第三步,首次运行授权。启动后按提示前往"系统设置 > 隐私与安全性 > 辅助功能"勾选授权——工具靠这个权限接入全局输入事件流。权限检测逻辑在 Helper/AccessibilityCheck.m,应用内的授权引导页实现于 App/UI/Accessibility/AuthorizeAccessibilityView.m。

三个最值得试的玩法,鼠标直接获得触控板手感

点击并拖动:窗口一键吸附

你正在用 Swish(macOS 窗口管理工具),又嫌它只认触控板手势?把 Buttons 标签页里任意按键的Click and Drag动作设为Scroll & Navigate,之后"按住按键拖动"就等于触控板双指滑动:窗口吸附半屏、四分之一屏、全屏都能做。

这条链路的代码在 Helper/Core/Drag:ModifiedDrag.m统一分发拖拽类型,TwoFingerSwipe、ThreeFingerSwipe等子模块决定合成几指手势,最后由 Helper/Core/Touch/TouchSimulator.m 生成触控板事件。

鼠标按出亮度、音量与媒体键

任意键盘按键都能绑到鼠标上,包括只存在于 Apple 键盘上的特殊功能键:屏幕亮度、音频音量、媒体播放。手边没有 Apple 键盘也没关系——在按键选择器里按住 Option(⌥),Apple 特殊键就会出现在候选里。官方演示动图展示了这个效果:

按键模拟由 Helper/Core/Actions/Actions.m 把鼠标输入翻译成键盘事件,系统级功能键则走 Helper/Core/Actions/SymbolicHotKeys.m 的符号热键(symbolic hotkey)机制。打开 Shared/Config/default_config.plist 能看到默认预设里就有现成例子:三键鼠标方案下,中键单击与长按分别绑定了编号 70 和 36 的系统符号热键。

向下拖动呼出 App Exposé

动作列表里选Spaces & Mission Control,然后向下点击并拖动,即可呼出当前应用窗口。如果没反应,多半是系统层面的"App Exposé"触控板手势被关了:去系统设置打开它,或直接在终端执行

defaults write com.apple.Dock showAppExposeGestureEnabled -bool TRUE; killall Dock

出问题先查这里:高频故障排查清单

点击有延迟?这是设计行为:单击之后要等一小段,判断你是不是要双击,状态机与计时器见 Helper/Core/Buttons/ClickCycle.swift。想让某个按键"零延迟",删掉它名下所有Double Click动作即可。

侧键不生效 / 其他应用收不到按键?两类典型情况:一是该按键已被 Mac Mouse Fix 捕获,其他应用自然收不到;二是你的鼠标依赖厂商专有驱动(如 Logitech Options),它走私有协议而非标准 USB 协议,部分按键识别不了。Apple Magic Mouse 则完全不受当前版本影响。

倾斜滚轮?横向滚动支持,手感比系统原生更自然可控;但暂不能用它触发"切换桌面"这类动作——那需要向鼠标固件重写信号协议,官方排期中无时间表。

想关指针加速?应用内没有这个开关。macOS 14 Sonoma 及以后可在"系统设置 > 鼠标 > 高级… > 指针加速"里关闭。应用自身的指针速度调整位于 Helper/Core/PointerSpeed,IOHIDAccelerationTableBridge.mm 负责桥接系统加速度表。

想要"按应用生效"的设置?Mac Mouse Fix 2 有:More... > App-specific settings。Mac Mouse Fix 3 尚未实现,过渡方案是打开General标签页里的Show in Menu Bar,从菜单栏临时关闭平滑滚动 / 按键功能——对应 Helper/UI/MenuBarItem/MenuBarItem.swift,底层开关是默认配置General分组下的buttonKillSwitch与scrollKillSwitch两个布尔项。

MMF 2 和 MMF 3 怎么选?一张表说清:

Mac Mouse Fix 2Mac Mouse Fix 3
价格永久免费且持续维护30 天免费试用,之后需购买
按应用设置有(More... > App-specific settings)未实现(用菜单栏临时开关过渡)
授权范围—一份许可证覆盖你所有 Mac、覆盖全部 3.x 版本,同一 Apple 账户下经 iCloud 同步
代码开源开源(MMF License,允许使用源码但禁止发布"简单复制品")

它到底怎么做到:一条拦截到重写的流水线

整个运行链路是"拦截 → 分析 → 改写回注":所有鼠标事件先汇到一条专用 RunLoop——Shared/Config/Config.h 里configRunLoop()返回的就是GlobalEventTapThread.runLoop——各子系统处理完再写回。想读源码的人按这张表走就行:

关注点源码位置作用
事件拦截入口Helper/Utility/GlobalEventTapThread.m维护专用回调 RunLoop,接收全部鼠标事件
滚动平滑处理Helper/Core/ScrollScroll.m处理事件、ScrollControl.m控制输出节奏、ScrollAnalyzer.m分析滚动手势
按键与点击判定Helper/Core/ButtonsButtonInputReceiver.m接收输入,ClickCycle.swift判定单击 / 双击 / 长按 / 层级过期
手势拖拽合成Helper/Core/Drag、Helper/Core/Touch/TouchSimulator.m分发多指滑动类型并合成触控板事件
按键与热键输出Helper/Core/Actions、Helper/Core/Coordinate/OutputCoordinator.swift把鼠标输入翻译成键盘事件与系统符号热键
指针速度Helper/Core/PointerSpeed灵敏度 / 加速度,含系统加速度表桥接
配置读写Shared/Config/Config.m读写字体配置,默认值模板为default_config.plist

两个值得记住的配置细节:

  • 真实配置文件位于~/Library/Application Support/下以 App Bundle ID 命名的目录中(config.plist),Shared/Config/default_config.plist 只是默认模板;
  • 重映射模型是"触发方式 × 层级":同一个按键可以在单击、长按、拖动时分别绑不同动作,每种触发还能叠 level 分层。少量按键能装下大量功能,靠的就是这套结构。

卸载、隐私与参与贡献

卸载:把 Mac Mouse Fix 拖进废纸篓。但config.plist和授权状态文件仍会残留在 Application Support(授权状态单独存在安全存储里,见 Shared/Config/SecureStorage/SecureStorage.swift)——macOS 不允许应用在删除时自行清理这些文件,配合 AppCleaner 之类的工具做彻底清理最稳妥。

隐私:无广告、不收集个人信息;购买环节由销售平台收集邮箱等信息,仅用于退款与发放授权码。一份许可证对应一个人,不面向公开分享。

参与项目有三种不花钱的方式:

  • 反馈:通过项目反馈助手提交 bug 与功能想法;
  • 翻译:应用已有英语、德语及数十种语言(Localization 目录可看到完整本地化结构),官方提供翻译向导,补译和纠错都受欢迎;
  • 代码:任何 PR 都欢迎,但建议先提交一个"只描述方案、几乎不含代码"的初始 PR,确认方向后再实现,避免返工。

下一步:现在执行brew install mac-mouse-fix装上它,首次运行打开总开关并授予辅助功能权限,然后回到"三个最值得试的玩法",先给任意侧键配一个Scroll & Navigate——窗口吸附是上手后使用频率最高的功能。

【免费下载链接】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),仅供参考

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询