Repository navigation
v0.1.0 — 第一次能用了
v0.1.0 — 第一次能用了
Openly 的第一个版本。
它只做一件事:把 macOS 里「什么文件用什么打开」这张散落在各处的表,收进一个能看、能搜、能批改、能带走的窗口。
能看
- 首屏一张表:Launch Services 里你设过的关联,加上一份常用扩展名清单——
.md、.pdf、.html、mailto:、plain-text都在里面。每行是类型徽标、底层 UTI、默认应用的真实图标、注册应用数量 - 左栏两个智能列表:无默认应用(红色徽标,一眼看到哪些类型没人管)、最近修改(每次「原为 X → Y」都记着,重启还在)
- 七个文件类别按 UTType 的继承关系推导,不是硬编码映射表
能改
- 点任意一行弹出锚定面板,列出注册过这个类型的全部应用,选一个即生效;行内图标当场更新
- 列表里没有的应用走「浏览其他应用…」:任选一个
.app,先注册进 Launch Services 再设为默认 - 勾选多行批量改。应用不支持的类型逐条跳过并汇总报出,不会中途断掉
能反查
- 顶栏切「按应用」:侧栏按接管数量排出所有应用,主区列出它手里的每一个类型,还能一键「全部转移给…」。卸载或替换一个应用之前,先看清它管着什么
能带走
- 导出 infat 兼容的 TOML(
[extensions][types][schemes]三张表),直接进 dotfiles - 导入先算差异——新增 N 条、覆盖 M 条、其余一致——确认后才动手,改之前你就知道会改什么
macOS 26 上的一件事
这个版本在 macOS 26 上还能改默认应用,是因为设置路径换成了 NSWorkspace 的现代 API。旧的 LSSetDefaultRoleHandlerForContentType 在新系统上返回 noErr 但什么都写不进去——infat 的命令行在这台机器上已经改不动了。查询侧仍然走 legacy API,一切正常。
代价是:每次修改系统都会弹一次确认框,批量修改就是多次确认。这是 Apple 的机制,绕不过去,所以批量操作会提前告诉你。踩到的坑都记在 docs/LAUNCHSERVICES_NOTES.md。
还没有的
⌘Z撤销、恢复系统默认——目前只能手动改回去- 异常检测只做了「无默认」;「非常规占用」(比如 .html 被非浏览器接管)和「共享 UTI 联动提示」(yml / yaml 改一个影响另一个)还没做
- 搜索不覆盖注册应用名和 bundle ID
安装
下载 Openly-0.1.0.dmg,打开后把 Openly 拖进「应用程序」。
产物是 ad-hoc 签名、未公证,新机器首次打开会被 Gatekeeper 拦下(macOS 15 起已不能用「右键 → 打开」绕过):
- 系统设置 › 隐私与安全性 › 仍要打开;或
xattr -cr /Applications/Openly.app
要求 macOS 14 及以上,本版为 Apple Silicon(arm64)。27 项单元测试通过,CI 覆盖 macOS 15 与 26。