Files
komorebi/schemas/macos/schema.asc.json
T
LGUG2Z 1849547153 docs(macos): say what Class is on macOS in the schema and the komorebic help
The schema and the help of komorebic described the Class identifier as 'Role or
subrole'. It is the accessibility subrole of the window, or its role when it has no
subrole, and a rule matches either.
2026-11-06 14:49:36 -08:00

202 lines
5.0 KiB
JSON

{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"title": "ApplicationSpecificConfiguration",
"type": "object",
"additionalProperties": {
"$ref": "#/$defs/AscApplicationRulesOrSchema"
},
"$defs": {
"ApplicationIdentifier": {
"description": "Application identifier",
"oneOf": [
{
"description": "Executable name",
"type": "string",
"const": "Exe"
},
{
"description": "Accessibility subrole or role, such as AXStandardWindow",
"type": "string",
"const": "Class"
},
{
"description": "Window title",
"type": "string",
"const": "Title"
},
{
"description": "Executable path",
"type": "string",
"const": "Path"
}
]
},
"AscApplicationRules": {
"description": "Rules that determine how an application is handled",
"type": "object",
"properties": {
"floating": {
"description": "Rules to manage specific windows as floating windows",
"type": [
"array",
"null"
],
"items": {
"$ref": "#/$defs/MatchingRule"
}
},
"ignore": {
"description": "Rules to ignore specific windows",
"type": [
"array",
"null"
],
"items": {
"$ref": "#/$defs/MatchingRule"
}
},
"manage": {
"description": "Rules to forcibly manage specific windows",
"type": [
"array",
"null"
],
"items": {
"$ref": "#/$defs/MatchingRule"
}
},
"tabbed": {
"description": "Rules to identify applications which are title-less - only accepts Simple Exe rules",
"type": [
"array",
"null"
],
"items": {
"$ref": "#/$defs/MatchingRule"
}
},
"titleless": {
"description": "Rules to identify applications which are title-less - only accepts Simple Exe rules",
"type": [
"array",
"null"
],
"items": {
"$ref": "#/$defs/MatchingRule"
}
}
}
},
"AscApplicationRulesOrSchema": {
"anyOf": [
{
"$ref": "#/$defs/AscApplicationRules"
},
{
"type": "string"
}
]
},
"IdWithIdentifier": {
"description": "Rule for matching applications",
"type": "object",
"properties": {
"id": {
"description": "Target identifier",
"type": "string"
},
"kind": {
"description": "Kind of identifier to target",
"$ref": "#/$defs/ApplicationIdentifier"
},
"matching_strategy": {
"description": "Matching strategy to use",
"anyOf": [
{
"$ref": "#/$defs/MatchingStrategy"
},
{
"type": "null"
}
]
}
},
"required": [
"kind",
"id"
]
},
"MatchingRule": {
"description": "Rule for matching applications",
"anyOf": [
{
"description": "Simple matching rule which must evaluate to true",
"$ref": "#/$defs/IdWithIdentifier"
},
{
"description": "Composite matching rule where all conditions must evaluate to true",
"type": "array",
"items": {
"$ref": "#/$defs/IdWithIdentifier"
}
}
]
},
"MatchingStrategy": {
"description": "Strategy for matching identifiers",
"oneOf": [
{
"description": "Should not be used, only kept for backward compatibility",
"type": "string",
"const": "Legacy"
},
{
"description": "Equals",
"type": "string",
"const": "Equals"
},
{
"description": "Starts With",
"type": "string",
"const": "StartsWith"
},
{
"description": "Ends With",
"type": "string",
"const": "EndsWith"
},
{
"description": "Contains",
"type": "string",
"const": "Contains"
},
{
"description": "Regex",
"type": "string",
"const": "Regex"
},
{
"description": "Does not end with",
"type": "string",
"const": "DoesNotEndWith"
},
{
"description": "Does not start with",
"type": "string",
"const": "DoesNotStartWith"
},
{
"description": "Does not equal",
"type": "string",
"const": "DoesNotEqual"
},
{
"description": "Does not contain",
"type": "string",
"const": "DoesNotContain"
}
]
}
}
}