SpaceLauncher 适用于 macOS

配置格式

SpaceLauncher 的配置导出是 JSON 文件。你可以阅读、对比、复制到另一台 Mac,或用自己的脚本处理它们。

这个页面是一份面向信任和可检查性的参考,不是完整 API 规范。格式可能继续演进,因此工具在处理时应尽量保留未知字段。

导出类型

SpaceLauncher 会写出两种 JSON 包类型。

.slbindings 只导出快捷键绑定:

.slbackup 导出完整 App 备份:

包的 version 不同于 App 配置的 schemaVersion。当前 AppConfiguration schema 版本是 2

完整配置

完整的 AppConfiguration 包含:

commandTrees 是当前持久化结构。bindings 也会编码进去,用于工具和旧导入路径兼容。

快捷键绑定规则

每条规则是一个 FlatKeysAndActionRow,主要字段包括:

applicationScope 有两种形态:

{
  "allBut": {
    "paths": []
  }
}
{
  "only": {
    "paths": [
      "/Applications/TextEdit.app"
    ]
  }
}

示例

这个 .slbindings 示例包含一条绑定:按住 Space,再按 F 和 D,打开“下载”文件夹。

{
  "appVersion": "3.0.0 (300)",
  "exportedAt": "2026-06-07T12:00:00Z",
  "format": "name.guoc.SpaceLauncher.key-bindings",
  "keyBindings": [
    {
      "action": {
        "description": "Open Downloads",
        "openFolder": {
          "applicationPath": null,
          "folderPath": "~/Downloads"
        }
      },
      "applicationScope": {
        "allBut": {
          "paths": []
        }
      },
      "enabled": true,
      "id": "11111111-2222-4333-8444-555555555555",
      "keys": [
        3,
        2
      ],
      "leaderKey": {
        "hold": {
          "info": {
            "keepsTapFunction": true,
            "keyCode": 49
          }
        }
      }
    }
  ],
  "version": 1
}

在标准 Mac 键盘布局上,key code 49 是 Space。key code 32 分别是 F 和 D。

导入行为

导入快捷键绑定时,可以把新规则合并到当前设置,也可以替换所有当前快捷键绑定。合并时,SpaceLauncher 会用前导键、触发键和应用范围检查重复绑定身份。

完整备份恢复则不同:恢复 .slbackup 会替换 App 配置。它用于备份恢复,不是局部合并。

为什么这很重要

这个格式可读,也适合脚本处理。你可以检查一条绑定、用 diff 对比变化、在机器之间迁移设置,或用自己的工具生成规则。SpaceLauncher 也会保留本地滚动、带时间戳的配置备份,并在保存前提示快捷键冲突。