get-focus-mode

🎯 macOS 专注模式实时检测

🥥66总安装量 17评分人数 22
100% 的用户推荐

基于 macOS 原生 Do Not Disturb 数据库的只读工具,可安全获取当前专注模式状态,助力自动化工作流与效率管理。

A

基本安全,请在特定环境下使用

  • 来自社区或个人来源,建议先隔离验证
  • ✅ 纯本地读取操作,无网络通信与数据外传风险
  • ✅ 无危险函数调用(eval/exec/system 等),仅使用标准 jq 工具解析
  • ✅ 代码结构完全透明,无动态代码加载或第三方远程依赖
  • ⚠️ 需授权访问 ~/Library/DoNotDisturb/DB/ 系统目录方可正常执行
  • ⚠️ 依赖 macOS 特有的 Do Not Disturb 数据库结构及 jq 工具安装

使用说明

get-focus-mode 是一个轻量级的 macOS 系统工具型 Skill,专门用于读取当前激活的 Focus(专注)模式状态。该工具通过解析 macOS 原生的 Do Not Disturb 数据库文件,以只读方式获取系统专注模式信息,为自动化工作流提供可靠的状态数据源。

核心用法

用户可通过命令行直接调用 ~/clawd/skills/get-focus-mode/get-focus-mode.sh 执行脚本。脚本内部使用 jq 工具解析位于 ~/Library/DoNotDisturb/DB/ 目录下的 Assertions.jsonModeConfigurations.json 两个系统文件,提取当前激活的专注模式标识符并映射为可读名称(如 "Office"、"Sleep"、"Do Not Disturb" 或 "No Focus")。输出结果直接打印至 stdout,便于与其他 shell 脚本或自动化工具链集成。

显著优点

安全性是该 Skill 的最大亮点。作为纯本地执行的 Shell 脚本,它完全离线运行,不涉及任何网络请求或数据传输,彻底杜绝了隐私泄露风险。代码结构简单透明,仅使用标准的 jq 命令行工具进行 JSON 解析,不包含 eval()exec() 等危险函数,也无动态代码加载机制。此外,脚本采用防御性编程策略,利用 jq 的 ? 操作符和默认值语法(//)优雅处理缺失数据,确保在数据库结构异常时仍能稳定返回 "No Focus" 而非崩溃。

潜在缺点与局限性

平台依赖性是首要限制。该 Skill 深度依赖 macOS 特有的 Do Not Disturb 数据库结构,无法在 Linux 或 Windows 系统上运行。其次,它仅提供只读访问,无法修改或切换专注模式,如需控制功能需配合其他工具。此外,脚本依赖外部工具 jq,虽然这是标准 JSON 处理器,但仍需用户预先安装(可通过 Homebrew 获取)。最后,随着 macOS 系统更新,Apple 可能调整内部数据库结构,存在未来兼容性风险。

适合的目标群体

主要面向 macOS 重度用户、效率工具爱好者及自动化工作流开发者。特别适合需要基于当前专注模式自动调整通知策略、同步设备状态或记录工作时段的进阶用户。例如,可配合 Hammerspoon、Alfred 或 Keyboard Maestro 等自动化工具,实现"进入办公模式时自动开启特定应用"或"睡眠模式触发时执行清理脚本"等场景。

使用风险

常规风险主要包括权限管理和系统兼容性两方面。首次运行时,macOS 隐私保护机制可能拦截对 ~/Library/DoNotDisturb/DB/ 目录的访问,需要用户在系统设置中手动授权。虽然脚本本身只读,但错误的手动修改仍可能破坏系统文件完整性(尽管概率极低)。性能方面,由于仅涉及本地小文件读取,资源消耗可忽略不计。建议用户定期检查脚本来源更新,以应对潜在的 macOS 版本升级带来的 API 变更。

get-focus-mode 内容

手动下载zip · 1.1 kB
get-focus-mode.shtext/x-shellscript
请选择文件