配置格式
SpaceLauncher 的配置导出是 JSON 文件。你可以阅读、对比、复制到另一台 Mac,或用自己的脚本处理它们。
这个页面是一份面向信任和可检查性的参考,不是完整 API 规范。格式可能继续演进,因此工具在处理时应尽量保留未知字段。
导出类型
SpaceLauncher 会写出两种 JSON 包类型。
.slbindings 只导出快捷键绑定:
format:name.guoc.SpaceLauncher.key-bindingsversion: 当前为1keyBindings: 快捷键绑定规则数组
.slbackup 导出完整 App 备份:
format:name.guoc.SpaceLauncher.backupversion: 当前为1configuration: 完整的AppConfiguration
包的 version 不同于 App 配置的 schemaVersion。当前 AppConfiguration schema 版本是 2。
完整配置
完整的 AppConfiguration 包含:
schemaVersioncommandTreesbindingsdisabledApplicationssuggestedDisabledApplicationPaths
commandTrees 是当前持久化结构。bindings 也会编码进去,用于工具和旧导入路径兼容。
快捷键绑定规则
每条规则是一个 FlatKeysAndActionRow,主要字段包括:
id: UUIDenabled: 布尔值applicationScope:allBut(paths)或only(paths)keys: 触发键 key code 序列action: 动作载荷,可带存储在description中的人工描述leaderKey: 按住或轻按的前导键定义holdContinuationIndexAfterAction: 按住型前导键的可选延续设置
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 3 和 2 分别是 F 和 D。
导入行为
导入快捷键绑定时,可以把新规则合并到当前设置,也可以替换所有当前快捷键绑定。合并时,SpaceLauncher 会用前导键、触发键和应用范围检查重复绑定身份。
完整备份恢复则不同:恢复 .slbackup 会替换 App 配置。它用于备份恢复,不是局部合并。
为什么这很重要
这个格式可读,也适合脚本处理。你可以检查一条绑定、用 diff 对比变化、在机器之间迁移设置,或用自己的工具生成规则。SpaceLauncher 也会保留本地滚动、带时间戳的配置备份,并在保存前提示快捷键冲突。