完全指南:默认接管机制、关闭步骤与让位给 MOS 等第三方应用)
桌面应用系统编程【免费下载链接】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下文简称 MMF在安装后会默认捕获鼠标滚轮这与它默认捕获鼠标按钮是同一套设计思路。如果你希望保留 MMF 的按钮增强、同时让其他应用如平滑滚动工具 MOS完全接管滚轮本文会给出在 Scrolling 选项卡中一键解除捕获的精确操作步骤并从源码层面解释捕获判定逻辑、关闭后 MMF 为何能做到滚动零开销以及如何再次恢复捕获。什么是捕获滚轮和捕获鼠标按钮类似MMF 默认会捕获capture你的鼠标滚轮即接管滚轮输入事件以便实现平滑滚动、滚动速度、反向滚动以及键盘修饰键水平滚动、缩放等等一系列功能。需要说明的是从文档的设计讨论注释看滚轮的捕获与按钮的捕获在语义上略有差异按钮捕获会让 MMF 从其他应用中隐藏按钮事件而滚轮场景下MMF不会像隐藏按钮那样对其他应用隐藏滚动事件这里捕获更接近拦截/接管Intercepting的含义——即由 MMF 来处理滚轮事件并输出它计算好的滚动结果。从实现上看Helper 进程通过 CGEventTap 在系统 HID 事件层拦截滚轮事件在 Scroll.m 中Scroll类创建了kCGHIDEventTap事件源事件掩码为CGEventMaskBit(kCGEventScrollWheel)并在startReceiving/stopReceiving之间切换拦截状态。只要这个事件拦截处于开启状态滚轮输入就会先经过 MMF 的处理管线平滑动画、加速曲线、修饰键分支等。为什么 MMF 要默认捕获滚轮捕获是 MMF 实现下述滚动功能的前提这些功能全部在 default_config.plist 的Scroll字典中默认开启默认配置键默认值对应 UI 选项作用Scroll.smoothhighSmoothness平滑度平滑滚动动画Scroll.speedmediumSpeed速度MMF 自研的滚动加速算法Scroll.reverseDirectiontrueReverse Direction反向滚动反转滚动方向Scroll.modifiers.horizontal131072ShiftKeyboard Modifiers → Horizontal Scroll按住修饰键水平滚动Scroll.modifiers.zoom1048576CommandKeyboard Modifiers → Zoom按住修饰键缩放Scroll.modifiers.swift262144ControlKeyboard Modifiers → Swift Scroll按住修饰键快速滚动Scroll.modifiers.precise524288OptionKeyboard Modifiers → Precise Scroll按住修饰键精确滚动Scroll.trackpadSimulationtrueTrackpad Simulation模拟触控板惯性滚动只要这些选项中的任何一项处于开启状态MMF 就需要持续监听并处理滚轮事件此时滚轮就是被捕获的。如何判断滚轮当前是否被捕获MMF 会在以下两个时机弹出屏幕通知toast滚轮变为被捕获时滚轮停止被捕获时该通知由 CaptureToasts.m 中的showScrollWheelCaptureToast:实现。而是否被捕获的实时判定逻辑位于 ScrollTabController.swift它同时监听Scroll.smooth、Scroll.reverseDirection、Scroll.speed以及四个修饰键配置并用如下条件判断let isCaptured smooth1 ! off || reverse1 || speed1 ! system || horizontal1 ! 0 || zoom1 ! 0 || swift1 ! 0 || precise1 ! 0也就是说源码层面判定滚轮被捕获的充分条件为平滑度Smoothness不是off或反向滚动Reverse Direction开启或速度Speed不是macOS对应配置值system或任一 Keyboard Modifiers 条目被设置对应配置值非 0。只要以上任一条件满足滚轮即处于捕获状态全部不满足时MMF 会弹出滚轮不再被捕获的通知。如何关闭滚轮捕获完整步骤要完全阻止 MMF 捕获滚轮只需在 Scrolling 选项卡中关闭全部选项打开 Mac Mouse Fix进入Scrolling选项卡。关闭Smoothness平滑度将选项设为Off。该操作对应配置Scroll.smooth off在 ScrollConfig.swift 中被解析为kMFScrollSmoothnessOff进而映射到无动画曲线kMFScrollAnimationCurveNameNone见 ScrollConfigObjC.h此时smoothEnabled为false平滑滚动动画被完全关闭。关闭Speed速度将选项设为macOS。该操作对应配置Scroll.speed system被解析为kMFScrollSpeedSystem。在 ScrollConfig.swift 中当速度为system且未使用修饰键时accelerationCurve会被置为nil意味着 MMF 完全放弃自研加速算法改用 macOS 系统默认的滚动行为useAppleAcceleration为true。关闭Reverse Direction反向滚动取消勾选。对应配置Scroll.reverseDirection false。清空Keyboard Modifiers键盘修饰键下的所有条目逐个点击每个修饰键条目右侧的x按钮将其删除。对应四个配置Scroll.modifiers.horizontal / zoom / swift / precise全部归零。完成上述操作后你应当会看到一条通知消息提示滚轮已不再被捕获——这正是上节所述isCaptured条件全部不满足时触发的showScrollWheelCaptureToast(false)。提示Scrolling 选项卡的其余开关如 Trackpad Simulation、Precise Scrolling依赖 Smoothness/Speed 设置将其关闭/设为 macOS 后这些子选项也会随之失去作用但为了确保判定条件彻底不成立请以SmoothnessOff、SpeedmacOS、Reverse DirectionOff、Keyboard Modifiers 清空为准。取消捕获后会发生什么一旦滚轮停止被捕获MMF 会完全忽略你的滚轮滚动过程中不再占用任何处理器资源或耗电不再以任何方式干预滚轮事件你可以把滚轮完全交给其他应用处理——例如 MOS、Logi Options 等第三方平滑滚动工具两者互不干扰形成MMF 管按钮、第三方管滚动的组合。这得益于两层实现配置层当Scroll.smooth off、Scroll.speed system后ScrollConfig.swift 中的smoothEnabled与useAppleAcceleration分别变为false/trueMMF 不再生成任何动画事件与加速计算。事件层SwitchMaster.swift 在决定是否拦截滚动输入时会综合判断scrollKillSwitch、设备与修饰键占用情况而菜单栏 MenuBarItem.swift 与配置键General.scrollKillSwitch提供了更彻底的滚动开关见 default_config.plist。从代码看scrollKillSwitch打开时滚动事件拦截会被完全禁用——这相当于在系统层面给滚轮捕获加了一道总闸。如何恢复滚轮捕获想恢复 MMF 的平滑滚动能力时只需在 Scrolling 选项卡中重新打开任意选项例如把 Speed 从 macOS 改为 Medium或把 Smoothness 改回 Regular/High。此时isCaptured条件重新成立MMF 会弹出滚轮已被捕获的通知并立即恢复对滚轮的接管。另外如果你只是临时想让 MMF 完全不干预鼠标而不仅仅是滚轮也可以直接关闭General Enable Mac Mouse Fix或通过菜单栏图标的滚动开关对应General.scrollKillSwitch单独关闭滚动处理。参考与延伸本文是 Captured Scroll Wheels 的深度扩展英文原版位于仓库根目录各语言译本见 Markdown/LocalizedDocuments 下的对应目录。按钮捕获的完整说明、常见问题与恢复原功能的方法见 Captured Mouse Buttons。滚动配置的底层解析逻辑可阅读 ScrollConfig.swift 与 ScrollConfigObjC.h默认配置见 default_config.plist。Scrolling 选项卡的 UI 绑定、捕获判定与通知触发逻辑见 ScrollTabController.swift。赞分享桌面应用系统编程【免费下载链接】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 滚轮捕获机制详解如何关闭滚轮捕获并让第三方滚动应用接管Mac Mouse Fix 滚轮捕获机制详解如何关闭滚轮捕获并让第三方滚动应用接管 Mac Mouse Fix以下简称 MMF默认会「捕获capture桌面应用系统编程Mac Mouse Fix 滚轮捕获机制默认拦截、手动解除与交给其他滚动应用接管Mac Mouse Fix 滚轮捕获机制默认拦截、手动解除与交给其他滚动应用接管 Mac Mouse Fix 默认会「捕获capture」鼠标滚轮的滚动输桌面应用系统编程使用 aws_cloudfront_realtime_log_config 数据源读取 CloudFront 实时日志配置使用 aws_cloudfront_realtime_log_config 数据源读取 CloudFront 实时日志配置 本文以 terraform prov桌面应用系统编程上一篇ts-toolbelt深度剖析TypeScript最大类型库的架构与设计哲学下一篇Baserow 文件上传管理实战指南从上传到权限控制一次讲清创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考