
看到这个标题我第一反应是想转给几个还在纠结要不要买 CleanShot X的朋友。说实话macOS 上从来不缺效率工具但缺的是功能够用、免费开源、不膈应人的那一款。标题里说的 Snipaste、Kap、ColorSlurp、XtraFinder 我基本都用过它们各自都算得上某条赛道里的好手但要凑齐截图标注、录屏、取色、Finder 增强、OCR 翻译、二维码识别、屏幕测距这一整套你至少得装四五个软件还要忍受不同软件的快捷键逻辑、更新节奏和授权方式。我自己组装这套全免费开源方案已经跑了两个月期间把截图、取色、翻译、扫码、量尺寸这些高频操作全部收到几个全局快捷键下面。这篇文章就把我的完整选型、配置步骤、踩坑记录都放出来。如果你是 macOS 用户、效率工具爱好者或者单纯不想再给商业软件交订阅费这篇应该能帮你省下不少折腾时间。1. 先拆解需求神器到底要解决什么问题1.1 从四个软件的名字说起先说标题里被干翻的四个工具它们各自解决什么问题。Snipaste 在 Windows 上确实是截图标注神器但 macOS 版本有个很现实的问题它不是免费的体验也远没有 Windows 版顺手。核心痛点在于截图后随手把图钉在屏幕上这个操作macOS 上很多截图工具做了功能但做得不干脆。Kap 是 macOS 上比较出名的开源录屏工具本身免费支持导出 GIF 和 MP4。它的问题不是收费而是定位太单一——它只管录屏不负责截图、取色这些邻域功能。ColorSlurp 的取色功能做得很漂亮支持多种颜色格式、放大镜、历史记录但它同样只解决取色这一个问题而且部分高级功能要付费解锁。XtraFinder 是很多老 macOS 用户的 Finder 增强首选但项目更新比较慢在新系统上偶尔会出现兼容性问题。它最吸引人的双窗口模式、标签页增强、多彩标签等功能现在 macOS 原生 Finder 已经吸收了一部分加上一些开源小工具完全能替代。这四个工具分开看都挺好但装四五个软件管理四五个快捷键这件事本身就够让人心累的更别说有些还是付费软件。这就是标题里一款神器全干翻这个愿望的现实基础。1.2 为什么我用开源组合拳而不是等一个全能 App坦白说我把 GitHub 翻了一圈macOS 上目前没有一个完全开源、且同时搞定截图、录屏、取色、Finder 增强、OCR 翻译、二维码识别、屏幕测距的单体应用。与其等一个不存在的瑞士军刀不如用一套开源工具把它拼出来。这个思路有点像做饭全家桶 App 是预制菜一顿饭全给你配齐但口味固定、不能替换开源组合是买菜自己炒每样食材都可以换成你更喜欢的。我最终选的这套组合日常使用中几乎感受不到这是一个拼装方案因为所有高频操作都被 Hammerspoon 统一收口到少量快捷键上体感就是一个神器。这个方案的好处有三个一是全部免费且开源所有代码你都看得到不用担心后门或埋点二是每块都能独立替换比如你不喜欢 Flameshot 可以换别的截图工具不影响其他部分三是可折腾空间大我自己就是靠 Hammerspoon 把屏幕测距这个没有开源现成方案的需求给补上了体验还比很多商业软件更顺手。1.3 整体方案一览这是我最终固定下来的选型表后面的安装配置都会围绕这几项展开。功能需求开源工具主要能力对应的商业/闭源替代截图、标注、钉图Flameshot区域截图、箭头/马赛克/文本标注、贴图到屏幕Snipaste、CleanShot X录屏、导出 GIF/MP4Kap区域/窗口录制、GIF 导出、快捷剪辑ScreenFlow, CleanShot X取色、格式化颜色值Pika屏幕取色、多格式复制、放大镜ColorSlurpFinder 增强OpenInTerminal Finder 原生设置当前目录打开终端/编辑器、标签页增强XtraFinder, Path FinderOCR 翻译Easydict截图 OCR、划词、多翻译源Bob、TextSniper二维码识别zbarimg Automator快捷操作识别图片二维码iShot 的扫码功能屏幕测距Hammerspoon 脚本屏幕上测量两点距离、显示 dx/dyXnip 的尺子功能这套方案选完后我只有一个额外的要求把它们的入口统一。这个工作在后面第 3 部分专门讲。2. 七件套逐个装齐安装、配置、上手技巧2.1 截图与标注让 Flameshot 扛起 Snipaste 的旗Flameshot 是个跨平台开源截图工具我一开始对它没抱太大期望毕竟macOS上能能用的跨平台截图工具不多。但实际用下来它的核心体验和 Snipaste 非常接近尤其是在钉图这个操作上。安装很简单brew install --cask flameshot装完第一次运行会提示需要屏幕录制权限这个权限是 macOS 所有截图工具都绕不开的。去系统设置 → 隐私与安全性 → 屏幕录制里勾选 Flameshot 就行。如果之后截图黑屏十有八九是权限没给全。Flameshot 的默认调用方式比较直接打开 App 后它会出现在菜单栏你可以自己设置快捷键也可以在终端里用命令触发。我建议直接用 Hammerspoon 绑定一个快捷键来调用flameshot gui这样触发方式是完全可控的。截图后你会看到一个工具栏里面没有乱七八糟的滤镜特效就是干活用的矩形框选、椭圆、箭头、画笔、马赛克、文本、高亮以及右下角的钉住按钮。钉图是这个方案替代 Snipaste 的关键截完图不需要保存文件点一下钉住按钮图像就直接贴在桌面最上层可以多张同时钉着适合做方案对比、临时参考。如果不需要了按 Esc 或者点击图的关闭按钮就行。2.2 录屏与 GIFKap 本来就是友军标题里说把 Kap 也干翻但说实话Kap 本身就是开源免费的我们截屏上传的时候保留它比替换它更划算。你可能会问既然是免费开源为什么不算进方案里 对我也这么想所以直接把 Kap 作为这套方案的录屏模块。安装brew install --cask kapKap 的界面很轻打开后就是一个很小的控制条可以选择录制整个屏幕、选中窗口、或者手动拖拽一个区域。点下录制按钮它会在右上角菜单栏显示一个跳动的小红点再点一下结束。Kap 最让我喜欢的是它输出 GIF 的能力。以前做技术演示、写文档配图时我还用 ffmpeg 把视频转成 GIFKAP 直接把整个流程做成了录制 → 预览 → 导出 GIF/MP4/WebM导出前还能调整帧率、缩放尺寸、是否循环。以前要给公众号文章配一张动图从录到导可能要十分钟现在 Kap 里三十秒搞定。一个小坑Kap 默认导出的 GIF 如果帧率保持 30fps文件会比较大。建议录制屏幕操作类内容时导出设置里把帧率降到 15fps尺寸缩到 50% 或 75%文件体积能下降一大半观感基本不受影响。2.3 取色Pika开源界最好看的取色器之一取色这件事很多截图工具也能顺便做一下但做得专业的不多。Pika 是一个开源 macOS 取色器界面颜值在线功能也足够。安装brew install --cask pika启动后在菜单栏点它屏幕上会出现一个带放大镜的取色面板。鼠标滑到任何位置放大镜区域会放大像素键盘上下左右键可以逐像素微调颜色选择目标点击即可锁定当前颜色。Pika 的亮点是颜色格式支持非常全HEX、RGB、HSL、UIColor、NSColor还有 SwiftUI 的 Color 格式。对于写代码、做设计稿的人很方便。默认复制格式是 HEX可以在设置里换成自己常用的格式我一般会设成HEX RGB两个一起复制方便贴到设计文件和注释里。取色历史记录也很好用它会保留最近取过的颜色你可以在面板底部看到一排色块点一下就能重新复制。如果你要精确到像素的取色注意先把 macOS 的显示缩放关掉。如果在带 Retina 屏的 Mac 上开着缩放取到的坐标和实际像素会有换算偏差具体表现是取色位置总差那么两三个像素。2.4 Finder 增强OpenInTerminal 原生设置补上 XtraFinder 常用的 70%XtraFinder 的作用曾经是解决 Finder 难用的问题。到了现在的 macOSFinder 已经有标签页、多窗口、快速查看等功能大部分文件管理场景并不需要额外加双窗口这种重量级改造。我把这部分的优化分成两小块一块是原生设置一块是开源小工具。原生设置只需两步打开 Finder → 设置 →打开文件夹时在标签页中打开这样以后在访达里按 CmdT 就可以开新标签不会弹出一堆新窗口。同时在显示里勾上显示路径栏和显示状态栏文件路径和剩余空间一目了然。真正能提升效率的是 OpenInTerminal它解决的是我在这堆文件目录里想立刻打开终端操作一下的需求。这个动作在程序员日常工作里非常高频以前我只能手动复制路径再切到终端 cd现在点一下 Finder 工具栏的按钮就开好了。安装brew search openinterminal它可能有两个版本Lite 版功能更简单A 版支持 iTerm2、Hyper、Alacritty 以及 VS Code 等编辑器。装完在 Finder 工具栏右键——自定义工具栏——把图标拖到工具栏上完成。之后在任意目录里点击图标可以选择打开当前目录的终端、VS Code 或其他编辑器。这个方案没完全复刻 XtraFinder 的双窗格功能但对于绝大多数不搞双栏文件管理的用户标签页 路径栏 上下文打开终端已经足够而且所有操作都稳、快不拖累系统。2.5 OCR 翻译Easydict开源界的 Bob 替代OCR 翻译是我这波选型里最满意的一环。Easydict 是 macOS 上免费开源的翻译工具它的定位类比 Bob但完全开源而且 OCR 能力用的是 macOS 内置的 Vision 框架离线状态下也能识别图片里的文字识别中文和英文的准确率都很不错。安装brew install --cask easydictEasydict 内置的 OCR 识别是离线的翻译会联网调用翻译源比如 DeepL、Google、Bing、Apple 翻译等你可以在设置里自由勾选用哪几个源。我个人习惯只保留 DeepL 和 Apple避免翻译源太多导致结果区域太乱。使用流程很简单全局快捷键触发截图 OCR框选屏幕上的文本区域Easydict 会自动识别文字并翻译结果直接显示在小窗口里。它还支持划词翻译在任意应用里选中文字按下快捷键弹出翻译窗口。对于看英文文档、读 PDF、跟外国同事沟通的场景这个工具省去了复制文本 → 打开网页翻译的繁琐步骤。对中文场景来说更贴心的是Easydict 会优先使用苹果词典对一些生词做解释相当于附带一个轻量词典功能。2.6 二维码识别zbarimg Automator 右键服务macOS 自带的预览其实能识别二维码但操作路径太长右键图片 → 打开方式 → 预览 → 再用预览里的选择文本去识别根本不符合效率党的习惯。所以我把二维码识别做成了一个右键快速动作选中任意图片文件右键一下就能出结果。核心依赖是 zbar一个老牌开源条形码/二维码识别库命令行工具zbarimg可以一行命令识别图片brew install zbar测试一下准备一张二维码图片执行zbarimg -q --raw /path/to/qrcode.png终端会直接打印二维码内容。如果二维码里包含中文终端可能显示乱码不要慌后续用 Automator 把它复制到剪贴板就不会有编码问题。Automator 配置步骤打开自动操作选择快速操作。工作流程收到图像文件位于访达。拖入运行 Shell 脚本操作Shell 选/bin/zsh传递输入选作为参数。粘贴下面这段脚本for f in $; do result$(zbarimg -q --raw $f 2/dev/null) if [[ -n $result ]]; then echo -n $result | pbcopy osascript -e display notification 二维码内容已复制到剪贴板 with title 识别成功 else osascript -e display alert 没有识别到二维码 message $f fi done保存命名为识别二维码。从此之后你要在访达里识别任意二维码图片右键 → 快速操作 → 识别二维码识别结果会复制到剪贴板同时右上角弹一个通知。比用手机扫屏幕截图方便太多了。2.7 屏幕测距Hammerspoon 把最后一块拼图补上屏幕测距是标题里最有意思的新功能但 GitHub 上确实没有特别成熟的开源屏幕尺子 App。于是我选择了 Hammerspoon一个老牌 macOS 自动化工具它几乎能操控 macOS 的一切 UI 事件画线、监听鼠标、弹提示都不在话下。用它写一个按住鼠标拖动测量距离的小脚本比找一个半成品 App 靠谱得多。Hammerspoon 安装brew install --cask hammerspoon安装完成后它会在菜单栏出现一个图标首次打开需要去系统设置里给它辅助功能权限。Hammerspoon 的一切配置都在~/.hammerspoon/init.lua这个文件里我后面第 3 部分会详细给出这段尺子脚本这里先卖个关子——它是整个方案的灵魂之一也是最能体现开源灵活度的地方。3. 用 Hammerspoon 把散装工具串成一把神器3.1 总调度思路让所有工具只有一个入口工具装多了以后最大的痛点不是功能性欠缺而是记不住快捷键。Flameshot 一套快捷键Kap 一套快捷键Easydict 又有自己的快捷键全都堆在肌肉记忆里会混乱。我的解法是让 Hammerspoon 做统一入口所有高频工具都绑定到我知道规律的组合键上另外再加一个测距模式的全局开关。在~/.hammerspoon/init.lua里我最开始配置了这样一段简单调度-- 截图CmdCtrl1 启动 Flameshot hs.hotkey.bind({cmd, ctrl}, 1, function() hs.execute(open -a Flameshot, true) end) -- OCR 翻译CmdCtrl2 唤起 Easydict hs.hotkey.bind({cmd, ctrl}, 2, function() hs.execute(open -a Easydict, true) end) -- 录屏CmdCtrl3 唤起 Kap hs.hotkey.bind({cmd, ctrl}, 3, function() hs.execute(open -a Kap, true) end)这段配置本身不复杂但它解决了一个很实际的问题所有工具的入口都被我记成一个规律CmdCtrl数字就是工作流入口数字递增对应不同功能。如果你不喜欢 open -a 这种方式Hammerspoon 也支持直接执行可执行文件的完整路径比如 Flameshot 实际是/Applications/Flameshot.app/Contents/MacOS/flameshot。3.2 屏幕测距Hammerspoon 脚本从零实现这是我最想展开的部分。屏幕测距其实就是要做到在屏幕上按下鼠标左键记下一个起点拖动到目标位置松开测量起点和终点的距离。这里的距离可以拆成水平方向 dx、垂直方向 dy以及直线距离 dist。对 UI 设计师、前端工程师来说这三个数都很实用。我写了这么一段脚本放在~/.hammerspoon/init.lua或单独引入的screen-ruler.lua里ruler ruler or {} -- 保持单例方便重载 -- 存储测距起点 ruler.startPoint nil -- 存储事件监听器方便退出时清理 ruler.tap nil -- 存储退出用的 Esc 快捷键 ruler.escKey nil local function formatPoint(pt) return string.format(%d, %d, math.floor(pt.x 0.5), math.floor(pt.y 0.5)) end -- 鼠标按下/抬起时的处理函数 local function onMouseEvent(event) local etype event:type() local p hs.mouse.getAbsolutePosition() if etype hs.eventtap.event.types.leftMouseDown then ruler.startPoint p elseif etype hs.eventtap.event.types.leftMouseUp then if ruler.startPoint then local sp ruler.startPoint local dx math.abs(p.x - sp.x) local dy math.abs(p.y - sp.y) local dist math.floor(math.sqrt(dx * dx dy * dy) 0.5) local msg string.format( 起点(%s) - 终点(%s)\ndx%d dy%d 直线距离%dpx, formatPoint(sp), formatPoint(p), dx, dy, dist) hs.alert.show(msg, 3) hs.pasteboard.setContents(string.format(dx%d dy%d dist%dpx, dx, dy, dist)) ruler.startPoint nil end end return false -- 不阻塞事件继续传播 end local function disableRuler() if ruler.tap then ruler.tap:stop() ruler.tap nil end if ruler.escKey then ruler.escKey:delete() ruler.escKey nil end hs.alert.show(测距模式已退出) end local function enableRuler() -- 如果已经在测距模式再按一次则退出 if ruler.tap then disableRuler() return end ruler.tap hs.eventtap.new({ hs.eventtap.event.types.leftMouseDown, hs.eventtap.event.types.leftMouseUp }, onMouseEvent) ruler.tap:start() hs.alert.show(测距模式已开启按住左键拖动测距Esc 退出) -- 在测距模式期间用 Esc 退出 ruler.escKey hs.hotkey.bind({}, escape, disableRuler) end -- 绑定全局快捷键CmdCtrlOptionR 切换测距模式 hs.hotkey.bind({cmd, ctrl, alt}, R, enableRuler)这段脚本的逻辑并不复杂但每个细节都踩过坑。我逐个讲第一hs.eventtap.new是 Hammerspoon 的事件监听 API。它可以监听系统级别的事件类型比如leftMouseDown和leftMouseUp。这个监听是全局的不限于某个应用内所以你在浏览器、设计稿、代码编辑器里都能用。第二回调返回值是false意思是我不拦截这个事件你继续往后传。如果你返回true系统事件就会被吞掉表现出来就是鼠标点击没有反应。我第一次测试时顺手返回了true结果把整个系统的左键拖拽搞失灵了吓得我立刻重启。记住只监听不拦截。第三hs.mouse.getAbsolutePosition()返回的坐标是 Retina 逻辑像素不是物理像素。在 Retina 屏上逻辑像素和物理像素的比例是 2 倍或 1.5 倍如果你要测的元素正好是 50pt它会显示 50pt和设计稿里的 pt 单位一致这在日常前端、设计对稿中反而是最方便的单位。第四hs.pasteboard.setContents会把测量结果同时复制到剪贴板。这样做的好处是测完不弹出窗口去抄数字直接 CmdV 就能把坐标数据贴到代码注释或对话里。使用效果按下全局快捷键 CmdCtrlOptionR屏幕中央会提示测距模式已开启然后按住鼠标左键从 A 点拖到 B 点松开后屏幕中央弹出包括起点、终点、dx、dy、直线距离的提示同时剪贴板里已经自动复制好了dx... dy... dist...px。不需要打开任何独立应用也不会打断手头工作。这个脚本的实用性比预想高很多。以前我用 Sketch 量标注、用浏览器开发者工具看元素尺寸遇到想量一下这个弹窗和屏幕边缘的距离这种需求只能打开各种工具去查坐标现在直接在屏幕上拖一下就出来了。更重要的是这套方案零依赖、纯开源、完全可控所以我也放心把它作为神器的核心功能之一。3.3 把这些能力连在一起截图完立刻 OCR扫码完立刻找终端工具链的价值在联动。我平时最高频的一个操作是看到一张截图或网页里有一段文字想翻译直接 CmdCtrl2 唤起 Easydict框选文字区域翻译结果直接就出来了。如果那段文字需要引用到文档里Easydict 也支持直接复制翻译结果这个路径比打开网页翻译少了好几步。另一个联动是截图与钉图的组合用 Flameshot 截了一张对比图确认不需要后按 Esc 关闭如果还需要参考就点钉住把它固定在屏幕上。这个交互用来做多方案对比、临时参考图非常顺手。Hammerspoon 在联动里最擅长的是桥接。比如你可以写一个脚本让二维码识别结果直接用系统浏览器打开qr$(zbarimg -q --raw /tmp/qrcode.png 2/dev/null) if [[ $qr http* ]]; then open $qr fi把它做成 Automator 快速操作后在访达里对一个二维码图片右键 → 快速操作 → 识别并打开链接直接帮你跳转到对应网页。这个在很多场景里很省事比如你的手机收到一张带二维码的图片拖到桌面上右键一下就能打开网页不用再拿起手机扫。3.4 给 Hammerspoon 加速重载配置、查看日志Hammerspoon 改完脚本不会自动生效需要重载配置。我在 init.lua 里加了这行这样我用 CmdCtrlShiftR 就能立刻重载所有配置不用跑去菜单栏点 Reloadhs.hotkey.bind({cmd, ctrl, shift}, R, function() hs.reload() end)如果某个快捷键或事件监听器没有按预期工作Hammerspoon 也自带一个控制台菜单栏图标里打开 Console 就能看运行日志。我排查测距脚本时就是靠 console 里的 Lua error 提示定位到一处变量名写错。这个工具对愿意动手折腾的人来说能力上限很高。4. 真实踩坑常见问题与排查技巧实录4.1 截图、录屏工具总是黑屏或者没图像这个问题的原因九成是权限。macOS 的屏幕录制权限是独立于辅助功能的而且不同应用需要单独授权。Flameshot、Kap、Easydict 如果出现截图黑屏录制内容为空的现象去系统设置 → 隐私与安全性 → 屏幕录制里确认是否已经勾选对应 App。有时候即使勾选了也要重启一次 App 才会真正生效。我最开始装 Flameshot 时权限给了但截图还是全黑重启系统后才恢复正常。这种东西属于 macOS 权限框架的好坏参半——安全是安全就是排查时费劲。4.2 快捷键冲突按下没反应开源工具多了快捷键撞车是家常便饭。比如 Easydict 默认的截图 OCR 快捷键和 Flameshot 的截图快捷键可能在某个 app 内冲突表现就是按下没反应或者两个工具同时弹出。排查思路是先切干净再加回来在系统设置的键盘快捷键面板里把相关全局快捷键改成无然后重新设置成自己的统一方案。我给 Hammerspoon 定的快捷键基本都带 CmdCtrlAlt 前缀这样就极少和系统默认的 CmdCtrl某字母冲突。如果某个命令行工具需要全局快捷键但它的快捷键设置又不太灵活就直接用 Hammerspoon 绑定一个你熟悉的快捷键然后让 Hammerspoon 调它相当于把所有快捷键统一到一个入口。4.3 OCR 识别不准、翻译源不可用Easydict 的 OCR 基于 macOS 内置 Vision 框架离线识别中文和英文的准确率相当不错但如果识别的截图里字体太小、有重叠、有背景干扰准确率还是会掉。这种情况我一般会先放大截图区域再框选或者调整系统放大镜的倍数。识别结果里如果出现明显错字也不必惊讶毕竟图片 OCR 从来不是 100% 准确。翻译源不可用是另一个高频问题。部分翻译源在某些网络环境下访问并不稳定表现是请求失败或一直在转圈。我去设置里只保留两三个稳定可用且速度明显的翻译源比如 Apple 翻译和 DeepL实际体验会好很多。4.4 二维码识别失败或输出乱码zbarimg 识别不了小尺寸二维码是常见问题。如果图片上的二维码太小或像素模糊可以先在预览里放大一两倍再识别识别率会明显提升。输出乱码则完全是终端编码的问题不是因为识别失败。zbarimg 在终端里直接打印中文内容时终端可能用 UTF-8 之外的编码显示看起来像乱码。只要把它通过pbcopy复制到剪贴板再贴到文本编辑器里内容就是正常的。4.5 Hammerspoon 脚本不生效或报错Hammerspoon 最常见的两个坑一是改了 init.lua 没有重载二是脚本里语法错误导致整个配置加载失败。建议每次改完脚本都用 CmdCtrlShiftR 重载然后在菜单栏的 Console 里看一眼有没有 error 信息。我给测距脚本调试时遇到一个非常隐蔽的问题事件监听器开启了但没停导致我后面写别的快捷键时系统总觉得有东西卡着。后来写了disableRuler里ruler.tap:stop()才好。大家如果在 Hammerspoon 里做任何 eventtap 监听一定要记得给开关加上停止逻辑不然性能会逐步下降。症状大概率原因解决办法截图黑屏、录屏无画面屏幕录制权限未开启设置 → 屏幕录制 → 勾选对应 App重开 App快捷键按下无响应快捷键冲突切换或者用 Hammerspoon 统一绑定OCR 错别字多字体过小、背景复杂放大截图区域再识别翻译请求一直失败网络原因/翻译源不稳定设置里只保留 2-3 个稳定翻译源zbarimg 识别不出图片分辨率低/二维码过小先放大图片再识别测量结果不对Retina 缩放导致坐标换算偏差确认是否在 Retina 屏逻辑像素下工作Hammerspoon 配置不生效语法错误或未重载打开 Console 看日志CmdCtrlShiftR 重载5. 这套开源方案和商业全家桶到底怎么选5.1 我的实测感受哪些场景够用哪些有落差从日常效率角度这套方案覆盖了我 95% 的需求其中截图、取色、OCR 翻译、屏幕测距这四项的体验已经完全不输我当年用的付费工具。如果非要说和全家桶的差距主要是三方面一是一键联动的爽感。商业全家桶通常会做统一设置面板不用自己花时间调 Hammerspoon开源方案第一天的配置成本是实打实的。二是某些极致渲染能力。比如 Kap 导出 GIF 的压缩能力和 ScreenFlow 这种付费录屏软件比还是有差距导出大文件时体积控制需要手动调参数。三是 UI 美观度。Pika、Flameshot、Kap 的界面都比较务实不像某些商业产品那样设计得花哨。但对我来说这些差距换来的回报是决定性的所有工具完全免费、代码完全开放、没有订阅提醒、没有遥测统计而且可以随时按自己的需求改脚本。一个电工不会抱怨工具箱里的螺丝刀不好看他只会关心合不合手。这套流程就是合手。5.2 建议工具宁缺毋滥按需加入你的工作流我见过很多人看了效率文章之后就一口气装十几个工具最后桌面上全是菜单栏图标真正用起来的没几个。我的建议是你只需要根据自己真实的痛点选其中两到三个开始如果你经常截图做标注、贴图对比先装 Flameshot。如果你经常读外文资料、截图翻译先装 Easydict。如果你做设计或前端经常需要取颜色、量尺寸装 Pika再把 Hammerspoon 的测距脚本配置好。如果经常需要写文档配图加装 Kap 就齐活了。装好之后用 Hammerspoon 把快捷键统一成你自己熟悉的一套。只要习惯一天你会发现日常操作的开销真的降下来了。5.3 根据我个人经验再分享两个扩展思路屏幕测距脚本其实还有很大的扩展空间。比如你可以让它同时识别多个点、绘制一条实际测距线段到屏幕上或者把它和 macOS 自带的截图工具联动量完直接画一条带箭头的标注线。只要你对 Hammerspoon 的 canvas 元素足够熟这些都不难实现。另一个我觉得很有价值的扩展是文本采集流水线用 Easydict 截取一段文字再通过 Hammerspoon 自动整理格式、存入备忘录或 Todo 工具等于给自己组装一个轻量知识管理链路。这套流程真的能帮你把看到有用信息 → 保存下来这个动作的损耗降到最低。开源工具的乐趣就是这样它不承诺给你一个完美成品但它给足了你把它打磨成趁手工具的自由。我希望这篇记录能帮你少走一些弯路也欢迎你按自己的习惯把方案改得更顺手——毕竟这套神器的权力只属于你自己。