macos-defaults/defaults.schema.json
2021-04-05 20:10:03 +02:00

217 lines
7.1 KiB
JSON

{
"$id": "https://macos-defaults.com/defaults.schema.json",
"title": "macOS Defaults Reference",
"description": "The supporting data for macos-defaults.com.",
"type": "object",
"properties": {
"categories": {
"description": "The main categorization level.",
"type": "array",
"items": {
"type": "object",
"properties": {
"folder": {
"description": "The slug for this category in the site's URL.",
"type": "string"
},
"name": {
"description": "The human readable name for this category.",
"type": "string"
},
"description": {
"description": "Longer form, human readable explanation of this category.",
"type": "string"
},
"image": {
"$ref": "#/definitions/image"
},
"keys": {
"description": "The defaults keys within this category.",
"type": "array",
"items": {
"type": "object",
"properties": {
"key": {
"type": "string"
},
"domain": {
"description": "The domain for this key, typically corresponding to an individual application.",
"type": "string"
},
"title": {
"description": "The human readable title of this key.",
"type": "string"
},
"description": {
"description": "Longer form, human readable explanation of this key.",
"type": "string"
},
"param": {
"type": "object",
"properties": {
"type": {
"description": "The type the key stores in the defaults system.",
"type": "string",
"enum": [
"array",
"bool",
"dict",
"float",
"int",
"string"
]
},
"values": {
"type": "array"
}
}
},
"examples": {
"type": "array",
"items": {
"description": "Describes a sample `defaults write` command example.",
"type": "object",
"properties": {
"value": {
"$ref": "#/definitions/value"
},
"command": {
"description": "The command used to set data when running `defaults write`. Must be valid for the parameter type and value. If not specified, the parameter type will be used.",
"type": "string",
"enum": [
"string",
"data",
"int",
"float",
"bool",
"date",
"array",
"array-add",
"dict",
"dict-add"
]
},
"default": {
"description": "If this command resets to the default setting.",
"type": "boolean"
},
"image": {
"$ref": "#/definitions/image"
},
"title": {
"description": "Human readable title for this example, will be autogenerated if not provided",
"type": "string"
},
"text": {
"description": "Human readable description of this example.",
"type": "string"
}
}
},
"uniqueItems": true
},
"versions": {
"description": "The versions of macOS this key has been tested on.",
"type": "array",
"items": {
"description": "E.g. \"Big Sur\", \"Catalina\"",
"type": "string"
},
"uniqueItems": true
},
"requirements": {
"type": "array",
"items": {
"description": "Describes another defaults setting that is required for this one to work.",
"type": "object",
"properties": {
"folder": {
"description": "The `folder` of a category in the defaults file.",
"type": "string"
},
"key": {
"description": "The `key` of a key in the category in the defaults file",
"type": "string"
},
"name": {
"description": "The defaults domain + key.",
"type": "string"
},
"value": {
"description": "The required value",
"$ref": "#/definitions/value"
}
}
}
},
"after": {
"type": "string"
}
},
"required": [
"domain",
"examples",
"key",
"param",
"title"
],
"additionalProperties": false
},
"uniqueItems": true
}
},
"required": [
"folder",
"name",
"description"
],
"additionalProperties": false
},
"uniqueItems": true
}
},
"required": ["categories"],
"additionalProperties": false,
"definitions": {
"image": {
"type": "object",
"properties": {
"filename": {
"description": "Path to this image asset in the images directory",
"type": "string"
},
"height": {
"type": "integer"
},
"width": {
"type": "integer"
}
},
"keys": [
"filename",
"height",
"width"
]
},
"value": {
"description": "The literal value or values passed to the `defaults write` command in the terminal.",
"anyOf": [
{"type": "boolean"},
{"type": "string"},
{"type": "integer"},
{"type": "number"},
{
"type": "array",
"items": {
"anyOf": [
{"type": "boolean"},
{"type": "string"},
{"type": "integer"},
{"type": "number"}
]
}
}
]
}
}
}