MacBook 的合盖休眠机制,一直是不少用户的心病。盖子一合,机器就睡过去了,后台的任务也就跟着停了。想合上盖子带走电脑,又不想中断正在跑的程序,这在 macOS 上几乎是个两难。苹果的设计逻辑很清楚:合盖即休眠,省电、降温、保护硬件。这个逻辑在大多数场景下是合理的,但在某些特定场景下,却成了麻烦。
modafinil 这个名字起得有意思。莫达非尼是一种中枢兴奋剂,用来治疗嗜睡症;这个同名的小工具,干的也是让 MacBook "不睡觉"的活儿。它是一个 macOS 菜单栏应用,核心功能很简单:防止 MacBook 在合盖时进入休眠状态,同时允许显示器正常关闭。机器醒着,屏幕黑着,电池省着,发热降着。
这个工具的诞生动机,源于一个越来越普遍的需求------让编码代理持续运行。编码代理,指的是那些能够自动完成编程任务的 AI 工具。它们往往需要较长时间才能完成任务,用户在这段时间里可能需要携带 MacBook 移动。合盖就休眠,代理的工作就中断了;不合盖,带着一台亮着屏幕的电脑走来走去,既不方便,也耗电。modafinil 解决的就是这个矛盾。
从技术上看,这个工具的实现并不复杂,但需要处理一些系统权限问题。它需要获取 App Background Activity 权限,也就是后台活动权限。这个权限在 macOS 的系统设置里,路径是"系统设置 → 通用 → 登录项与扩展"。首次运行时,系统会自动弹出权限请求。有了这个权限,应用才能在后台持续运行,不受合盖影响。
使用方式也很简洁。左键点击菜单栏图标,激活或停用防休眠功能;右键点击,弹出菜单,可以退出应用或卸载。没有复杂的设置界面,没有多余的选项,就是一个开关。这种极简设计,符合 macOS 工具的一贯风格------做一件事,做好它,不添乱。
目前这个工具只在 Apple Silicon 的 Mac 上测试过,系统要求是 macOS 13 或更高版本。Intel 芯片的 Mac 是否支持,作者没有明确说明。从代码构成看,主要使用 Swift 编写,辅以少量 Shell 脚本。Swift 是 macOS 原生开发语言,性能和系统集成度都有保障。
这个工具解决的问题虽小,却戳中了一个真实痛点。类似的工具其实早已有之,比如 Amphetamine、Caffeine 等防休眠软件,但它们大多面向的是"插着电源、开着屏幕"的场景。modafinil 的独特之处在于,它专门针对"合盖但不休眠"这个需求,并且允许显示器关闭。用户可以在移动中保持后台任务运行,同时不必担心屏幕常亮带来的耗电和发热问题。
当然,合盖运行也有代价。苹果的散热设计是按开盖状态来的,合盖后键盘面朝下,热量散不出去,高负载任务跑久了机器会烫。后台任务要是吃 CPU,最好还是开盖跑,或者至少把机器放在散热好的表面上。
另一个问题是移动中的碰撞风险。硬盘读写时被磕碰,总归不踏实。不过现代 MacBook 都是固态硬盘,没机械部件,这块倒是不用太担心。
modafinil 没什么宏大愿景,也不打算解决所有问题。它就待在菜单栏里,做一件事:合盖状态下,让后台任务继续跑。编码代理、长时间脚本、大文件下载,这些场景用得上。
工具的价值,不在复杂程度,在它是否解决了真实存在的问题。modafinil 做到了。适不适合你的场景,试一下就知道。
你遇到过 MacBook 合盖后任务中断的情况吗?评论区聊聊你的经历。
