简体中文 · English · 日本語 · 한국어 · Español
OpenGuard 是一个轻量的原生 macOS 菜单栏工具,用来把不同文件后缀稳定地绑定到你指定的应用。其他软件改掉默认打开方式后,OpenGuard 会自动恢复你的规则。
因为一件非常具体、也非常烦人的事:明明已经把 .md 文件设为用 Visual Studio Code 打开,过一会儿却又被 Xcode 或其他软件抢回去。Finder 的“始终以此应用打开”只能再改一次,不能阻止下一次劫持。
OpenGuard 因此而生:把用户选定的文件关联持续保持在正确状态,同时尽量不打扰、不常驻高负载进程,也不要求管理员权限。
- 面向程序员的预设:33 种常用后缀按文本与源码、文档、图片、影音和压缩文件分组。
- 分组与单项覆盖:一键给整个分组指定应用,也能为某个后缀单独设置例外。
- 完整的分组管理:可新增分组和规则、拖动排序、跨组移动;分组行提供编辑、上移、下移和删除图标。点击分组删除图标时可选择仅删除分组(规则移到根目录)、删除分组和规则,或取消。
- 键盘与多选:列表支持 Shift 点击连续多选、⌘ 点击增减选择、⌘A 全选。单选或多选后按 Delete 会先确认;选中分组时,其全部规则(含折叠隐藏的规则)也会删除。输入框内的快捷键仍用于编辑文字。
- 更好用的应用选择器:按本地化名称、原始名称、Bundle ID 或安装路径即时搜索,包括“预览”这类系统本地化别名。
- 快速自动恢复:每 3 秒检查一次,并在系统唤醒和应用重新激活时立即检查。
- 轻量原生实现:纯 AppKit,无第三方运行时;检查的是很小的 Launch Services 元数据集合。
- 五种界面语言:简体中文、English、日本語、한국어、Español,可在程序内切换。
- 广泛兼容:支持 Intel 与 Apple Silicon,最低 macOS 10.13。
- 无管理员权限:规则保存在当前用户配置中,登录启动也是用户级 LaunchAgent。
- 安全的更新提醒:启动时后台检查一次,运行期间每小时检查 GitHub Releases;只提醒,不静默下载或安装。
- 将
OpenGuard.app移到/Applications。 - 选中分组后点击“添加规则”,会直接在组内新增可编辑明细;填写后缀名和显示名称,点击 ✓ 确认。正常行右侧为铅笔(编辑)和垃圾桶(删除),编辑时为 ✓(确认)和 ×(取消);右键也可编辑或删除。取消只放弃修改,保留条目;未填写的规则不会参与保护。拖动行可排序或跨组移动。
- 点击分组右侧的
…统一指定应用,或点击单个后缀右侧的…设置覆盖规则。右键分组可以重命名。 - 移动完成后,可启用“登录时启动 OpenGuard”,并保持自动恢复开启。
关闭设置窗口后,菜单栏图标仍会继续工作;主界面激活时按 ⌘Q 可退出整个程序并停止守护。应用作为菜单栏工具运行,不显示 Dock 图标。选择“仅删除分组”会保留规则及应用绑定并移到根目录;“删除分组和规则”会移除该组及组内规则。“初始化分组”位于顶部“设置”菜单中,执行前会明确警告并二次确认。
OpenGuard 通过 macOS Launch Services 和统一类型标识符(UTI)读取、设置文件处理器。它不是内核级拦截器,无法禁止其他软件写入系统数据库;它的做法是在检测到变更后快速恢复,所以既保持轻量,也避免引入高权限组件。
OpenGuard 使用 GitHub 官方公开接口读取本仓库的最新 Release:
- 每次启动异步检查一次,不阻塞窗口和规则保护。
- 运行期间每小时检查一次。
- 同一新版本在一次运行中只提示一次。
- 网络错误、限流或尚无 Release 时静默跳过。
- 发现更新后只提供 GitHub 发布页入口,不会自动下载或安装。
- macOS 10.13 High Sierra 或更高版本
- Intel(
x86_64)与 Apple Silicon(arm64) - 无需第三方运行时和管理员权限
需要安装 Xcode Command Line Tools:
make clean verify生成的通用 App 位于 build/OpenGuard.app。本地构建使用 ad-hoc 签名;公开分发前应使用 Apple Developer ID 签名并完成公证。
生成可拖入“应用程序”的 DMG、备用 ZIP 和 SHA-256 校验文件:
make clean package诊断某个后缀:
build/OpenGuard.app/Contents/MacOS/OpenGuard --diagnose mdOpenGuard 不含遥测、广告或用户追踪。它不会上传规则、文件名、文件列表或应用列表。唯一的网络请求是向 GitHub API 获取公开 Release 元数据。
规则保存在 macOS 用户偏好设置中;启用登录启动时,仅创建:
~/Library/LaunchAgents/com.gloryhuis.OpenGuard.agent.plist
图标和 README 主视觉均使用仅含文字的原创提示词专门为 OpenGuard 生成,没有使用参考图片、素材库、第三方商标或现有软件 Logo。详细说明见 ARTWORK.md。
本项目采用 PolyForm Noncommercial License 1.0.0。允许查看、修改、Fork 和非商业分发;不允许商业使用。它属于 source-available 协议,而不是 OSI 定义的开源协议。
