{ "$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" } ] } } }