mirror of
https://github.com/LGUG2Z/komorebi.git
synced 2026-11-14 12:53:43 +01:00
schema.json, schema.asc.json, schema.bar.json -> schemas/windows/ komorebi-for-kde/schema.json, schema.asc.json -> schemas/linux/ komorebi-for-mac/schema.json, schema.asc.json, schema.bar.json -> schemas/macos/ The generated schemas of the three platforms are checked in side by side instead of at the root and in two subtrees. Renames only; the tests, the justfile, the nix checks and the docs that read them by path are updated in the path-fixing revision of this stack.
202 lines
4.9 KiB
JSON
202 lines
4.9 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": "Role or subrole",
|
|
"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"
|
|
}
|
|
]
|
|
}
|
|
}
|
|
}
|