mirror of
https://github.com/LGUG2Z/komorebi.git
synced 2026-01-11 22:12:53 +01:00
232 lines
5.8 KiB
JSON
232 lines
5.8 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": "Class",
|
|
"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"
|
|
}
|
|
},
|
|
"layered": {
|
|
"description": "Rules to identify applications which have the `WS_EX_LAYERED` Extended Window Style",
|
|
"type": [
|
|
"array",
|
|
"null"
|
|
],
|
|
"items": {
|
|
"$ref": "#/$defs/MatchingRule"
|
|
}
|
|
},
|
|
"manage": {
|
|
"description": "Rules to forcibly manage specific windows",
|
|
"type": [
|
|
"array",
|
|
"null"
|
|
],
|
|
"items": {
|
|
"$ref": "#/$defs/MatchingRule"
|
|
}
|
|
},
|
|
"object_name_change": {
|
|
"description": "Rules to identify applications which send the `EVENT_OBJECT_NAMECHANGE` event on launch",
|
|
"type": [
|
|
"array",
|
|
"null"
|
|
],
|
|
"items": {
|
|
"$ref": "#/$defs/MatchingRule"
|
|
}
|
|
},
|
|
"slow_application": {
|
|
"description": "Rules to identify applications which are slow to send initial event notifications",
|
|
"type": [
|
|
"array",
|
|
"null"
|
|
],
|
|
"items": {
|
|
"$ref": "#/$defs/MatchingRule"
|
|
}
|
|
},
|
|
"transparency_ignore": {
|
|
"description": "Rules to ignore specific windows from the transparency feature",
|
|
"type": [
|
|
"array",
|
|
"null"
|
|
],
|
|
"items": {
|
|
"$ref": "#/$defs/MatchingRule"
|
|
}
|
|
},
|
|
"tray_and_multi_window": {
|
|
"description": "Rules to identify applications which minimize to the tray or have multiple windows",
|
|
"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"
|
|
}
|
|
]
|
|
}
|
|
}
|
|
}
|