diff --git a/docs/cli/float-rule.md b/docs/cli/float-rule.md index 2162e30e..cf349003 100644 --- a/docs/cli/float-rule.md +++ b/docs/cli/float-rule.md @@ -7,7 +7,7 @@ Usage: komorebic.exe float-rule Arguments: - [possible values: exe, class, title] + [possible values: exe, class, title, path] Identifier as a string diff --git a/docs/cli/identify-border-overflow-application.md b/docs/cli/identify-border-overflow-application.md index 932e8cfc..4c102e28 100644 --- a/docs/cli/identify-border-overflow-application.md +++ b/docs/cli/identify-border-overflow-application.md @@ -7,7 +7,7 @@ Usage: komorebic.exe identify-border-overflow-application Arguments: - [possible values: exe, class, title] + [possible values: exe, class, title, path] Identifier as a string diff --git a/docs/cli/identify-layered-application.md b/docs/cli/identify-layered-application.md index 0c8e2d7c..0aff6c60 100644 --- a/docs/cli/identify-layered-application.md +++ b/docs/cli/identify-layered-application.md @@ -7,7 +7,7 @@ Usage: komorebic.exe identify-layered-application Arguments: - [possible values: exe, class, title] + [possible values: exe, class, title, path] Identifier as a string diff --git a/docs/cli/identify-object-name-change-application.md b/docs/cli/identify-object-name-change-application.md index 90221e61..9be3c6cb 100644 --- a/docs/cli/identify-object-name-change-application.md +++ b/docs/cli/identify-object-name-change-application.md @@ -7,7 +7,7 @@ Usage: komorebic.exe identify-object-name-change-application Arguments: - [possible values: exe, class, title] + [possible values: exe, class, title, path] Identifier as a string diff --git a/docs/cli/identify-tray-application.md b/docs/cli/identify-tray-application.md index 83bed71b..2ce0ab17 100644 --- a/docs/cli/identify-tray-application.md +++ b/docs/cli/identify-tray-application.md @@ -7,7 +7,7 @@ Usage: komorebic.exe identify-tray-application Arguments: - [possible values: exe, class, title] + [possible values: exe, class, title, path] Identifier as a string diff --git a/docs/cli/initial-named-workspace-rule.md b/docs/cli/initial-named-workspace-rule.md index a8cab6a0..3a3418e3 100644 --- a/docs/cli/initial-named-workspace-rule.md +++ b/docs/cli/initial-named-workspace-rule.md @@ -7,7 +7,7 @@ Usage: komorebic.exe initial-named-workspace-rule Arguments: - [possible values: exe, class, title] + [possible values: exe, class, title, path] Identifier as a string diff --git a/docs/cli/initial-workspace-rule.md b/docs/cli/initial-workspace-rule.md index 4e416593..f32b1387 100644 --- a/docs/cli/initial-workspace-rule.md +++ b/docs/cli/initial-workspace-rule.md @@ -7,7 +7,7 @@ Usage: komorebic.exe initial-workspace-rule - [possible values: exe, class, title] + [possible values: exe, class, title, path] Identifier as a string diff --git a/docs/cli/manage-rule.md b/docs/cli/manage-rule.md index ee4ce3a1..84b08135 100644 --- a/docs/cli/manage-rule.md +++ b/docs/cli/manage-rule.md @@ -7,7 +7,7 @@ Usage: komorebic.exe manage-rule Arguments: - [possible values: exe, class, title] + [possible values: exe, class, title, path] Identifier as a string diff --git a/docs/cli/named-workspace-rule.md b/docs/cli/named-workspace-rule.md index 9837563c..e84ad6cf 100644 --- a/docs/cli/named-workspace-rule.md +++ b/docs/cli/named-workspace-rule.md @@ -7,7 +7,7 @@ Usage: komorebic.exe named-workspace-rule Arguments: - [possible values: exe, class, title] + [possible values: exe, class, title, path] Identifier as a string diff --git a/docs/cli/remove-title-bar.md b/docs/cli/remove-title-bar.md index ada7de88..08d19cd5 100644 --- a/docs/cli/remove-title-bar.md +++ b/docs/cli/remove-title-bar.md @@ -7,7 +7,7 @@ Usage: komorebic.exe remove-title-bar Arguments: - [possible values: exe, class, title] + [possible values: exe, class, title, path] Identifier as a string diff --git a/docs/cli/workspace-rule.md b/docs/cli/workspace-rule.md index 24912a2e..db1a9841 100644 --- a/docs/cli/workspace-rule.md +++ b/docs/cli/workspace-rule.md @@ -7,7 +7,7 @@ Usage: komorebic.exe workspace-rule Arguments: - [possible values: exe, class, title] + [possible values: exe, class, title, path] Identifier as a string diff --git a/justfile b/justfile index 4f6883f4..c718a82c 100644 --- a/justfile +++ b/justfile @@ -51,10 +51,6 @@ docgen: komorebic docgen Get-ChildItem -Path "docs/cli" -Recurse -File | ForEach-Object { (Get-Content $_.FullName) -replace 'Usage: ', 'Usage: komorebic.exe ' | Set-Content $_.FullName } -exampledocs: - cp whkdrc.sample docs/whkdrc.sample - cp komorebi.example.json docs/komorebi.example.json - schemagen: komorebic static-config-schema > schema.json generate-schema-doc .\schema.json --config template_name=js_offline --config minify=false .\static-config-docs\ diff --git a/schema.json b/schema.json index d448507c..221b5c48 100644 --- a/schema.json +++ b/schema.json @@ -133,6 +133,32 @@ } } }, + "active_window_border_style": { + "description": "Active window border style (default: System)", + "oneOf": [ + { + "description": "Use the system border style", + "type": "string", + "enum": [ + "System" + ] + }, + { + "description": "Use the Windows 11-style rounded borders", + "type": "string", + "enum": [ + "Rounded" + ] + }, + { + "description": "Use the Windows 10-style square borders", + "type": "string", + "enum": [ + "Square" + ] + } + ] + }, "app_specific_configuration_path": { "description": "Path to applications.yaml from komorebi-application-specific-configurations (default: None)", "type": "string" @@ -146,36 +172,83 @@ "description": "Identify border overflow applications", "type": "array", "items": { - "type": "object", - "required": [ - "id", - "kind" - ], - "properties": { - "id": { - "type": "string" + "anyOf": [ + { + "type": "object", + "required": [ + "id", + "kind" + ], + "properties": { + "id": { + "type": "string" + }, + "kind": { + "type": "string", + "enum": [ + "Exe", + "Class", + "Title", + "Path" + ] + }, + "matching_strategy": { + "type": "string", + "enum": [ + "Legacy", + "Equals", + "StartsWith", + "EndsWith", + "Contains", + "Regex", + "DoesNotEndWith", + "DoesNotStartWith", + "DoesNotEqual", + "DoesNotContain" + ] + } + } }, - "kind": { - "type": "string", - "enum": [ - "Exe", - "Class", - "Title", - "Path" - ] - }, - "matching_strategy": { - "type": "string", - "enum": [ - "Legacy", - "Equals", - "StartsWith", - "EndsWith", - "Contains", - "Regex" - ] + { + "type": "array", + "items": { + "type": "object", + "required": [ + "id", + "kind" + ], + "properties": { + "id": { + "type": "string" + }, + "kind": { + "type": "string", + "enum": [ + "Exe", + "Class", + "Title", + "Path" + ] + }, + "matching_strategy": { + "type": "string", + "enum": [ + "Legacy", + "Equals", + "StartsWith", + "EndsWith", + "Contains", + "Regex", + "DoesNotEndWith", + "DoesNotStartWith", + "DoesNotEqual", + "DoesNotContain" + ] + } + } + } } - } + ] } }, "border_width": { @@ -223,36 +296,83 @@ "description": "Individual window floating rules", "type": "array", "items": { - "type": "object", - "required": [ - "id", - "kind" - ], - "properties": { - "id": { - "type": "string" + "anyOf": [ + { + "type": "object", + "required": [ + "id", + "kind" + ], + "properties": { + "id": { + "type": "string" + }, + "kind": { + "type": "string", + "enum": [ + "Exe", + "Class", + "Title", + "Path" + ] + }, + "matching_strategy": { + "type": "string", + "enum": [ + "Legacy", + "Equals", + "StartsWith", + "EndsWith", + "Contains", + "Regex", + "DoesNotEndWith", + "DoesNotStartWith", + "DoesNotEqual", + "DoesNotContain" + ] + } + } }, - "kind": { - "type": "string", - "enum": [ - "Exe", - "Class", - "Title", - "Path" - ] - }, - "matching_strategy": { - "type": "string", - "enum": [ - "Legacy", - "Equals", - "StartsWith", - "EndsWith", - "Contains", - "Regex" - ] + { + "type": "array", + "items": { + "type": "object", + "required": [ + "id", + "kind" + ], + "properties": { + "id": { + "type": "string" + }, + "kind": { + "type": "string", + "enum": [ + "Exe", + "Class", + "Title", + "Path" + ] + }, + "matching_strategy": { + "type": "string", + "enum": [ + "Legacy", + "Equals", + "StartsWith", + "EndsWith", + "Contains", + "Regex", + "DoesNotEndWith", + "DoesNotStartWith", + "DoesNotEqual", + "DoesNotContain" + ] + } + } + } } - } + ] } }, "focus_follows_mouse": { @@ -342,72 +462,166 @@ "description": "Identify applications that have the WS_EX_LAYERED extended window style", "type": "array", "items": { - "type": "object", - "required": [ - "id", - "kind" - ], - "properties": { - "id": { - "type": "string" + "anyOf": [ + { + "type": "object", + "required": [ + "id", + "kind" + ], + "properties": { + "id": { + "type": "string" + }, + "kind": { + "type": "string", + "enum": [ + "Exe", + "Class", + "Title", + "Path" + ] + }, + "matching_strategy": { + "type": "string", + "enum": [ + "Legacy", + "Equals", + "StartsWith", + "EndsWith", + "Contains", + "Regex", + "DoesNotEndWith", + "DoesNotStartWith", + "DoesNotEqual", + "DoesNotContain" + ] + } + } }, - "kind": { - "type": "string", - "enum": [ - "Exe", - "Class", - "Title", - "Path" - ] - }, - "matching_strategy": { - "type": "string", - "enum": [ - "Legacy", - "Equals", - "StartsWith", - "EndsWith", - "Contains", - "Regex" - ] + { + "type": "array", + "items": { + "type": "object", + "required": [ + "id", + "kind" + ], + "properties": { + "id": { + "type": "string" + }, + "kind": { + "type": "string", + "enum": [ + "Exe", + "Class", + "Title", + "Path" + ] + }, + "matching_strategy": { + "type": "string", + "enum": [ + "Legacy", + "Equals", + "StartsWith", + "EndsWith", + "Contains", + "Regex", + "DoesNotEndWith", + "DoesNotStartWith", + "DoesNotEqual", + "DoesNotContain" + ] + } + } + } } - } + ] } }, "manage_rules": { "description": "Individual window force-manage rules", "type": "array", "items": { - "type": "object", - "required": [ - "id", - "kind" - ], - "properties": { - "id": { - "type": "string" + "anyOf": [ + { + "type": "object", + "required": [ + "id", + "kind" + ], + "properties": { + "id": { + "type": "string" + }, + "kind": { + "type": "string", + "enum": [ + "Exe", + "Class", + "Title", + "Path" + ] + }, + "matching_strategy": { + "type": "string", + "enum": [ + "Legacy", + "Equals", + "StartsWith", + "EndsWith", + "Contains", + "Regex", + "DoesNotEndWith", + "DoesNotStartWith", + "DoesNotEqual", + "DoesNotContain" + ] + } + } }, - "kind": { - "type": "string", - "enum": [ - "Exe", - "Class", - "Title", - "Path" - ] - }, - "matching_strategy": { - "type": "string", - "enum": [ - "Legacy", - "Equals", - "StartsWith", - "EndsWith", - "Contains", - "Regex" - ] + { + "type": "array", + "items": { + "type": "object", + "required": [ + "id", + "kind" + ], + "properties": { + "id": { + "type": "string" + }, + "kind": { + "type": "string", + "enum": [ + "Exe", + "Class", + "Title", + "Path" + ] + }, + "matching_strategy": { + "type": "string", + "enum": [ + "Legacy", + "Equals", + "StartsWith", + "EndsWith", + "Contains", + "Regex", + "DoesNotEndWith", + "DoesNotStartWith", + "DoesNotEqual", + "DoesNotContain" + ] + } + } + } } - } + ] } }, "monitor_index_preferences": { @@ -541,7 +755,11 @@ "StartsWith", "EndsWith", "Contains", - "Regex" + "Regex", + "DoesNotEndWith", + "DoesNotStartWith", + "DoesNotEqual", + "DoesNotContain" ] } } @@ -615,7 +833,11 @@ "StartsWith", "EndsWith", "Contains", - "Regex" + "Regex", + "DoesNotEndWith", + "DoesNotStartWith", + "DoesNotEqual", + "DoesNotContain" ] } } @@ -635,36 +857,83 @@ "description": "Identify applications that send EVENT_OBJECT_NAMECHANGE on launch (very rare)", "type": "array", "items": { - "type": "object", - "required": [ - "id", - "kind" - ], - "properties": { - "id": { - "type": "string" + "anyOf": [ + { + "type": "object", + "required": [ + "id", + "kind" + ], + "properties": { + "id": { + "type": "string" + }, + "kind": { + "type": "string", + "enum": [ + "Exe", + "Class", + "Title", + "Path" + ] + }, + "matching_strategy": { + "type": "string", + "enum": [ + "Legacy", + "Equals", + "StartsWith", + "EndsWith", + "Contains", + "Regex", + "DoesNotEndWith", + "DoesNotStartWith", + "DoesNotEqual", + "DoesNotContain" + ] + } + } }, - "kind": { - "type": "string", - "enum": [ - "Exe", - "Class", - "Title", - "Path" - ] - }, - "matching_strategy": { - "type": "string", - "enum": [ - "Legacy", - "Equals", - "StartsWith", - "EndsWith", - "Contains", - "Regex" - ] + { + "type": "array", + "items": { + "type": "object", + "required": [ + "id", + "kind" + ], + "properties": { + "id": { + "type": "string" + }, + "kind": { + "type": "string", + "enum": [ + "Exe", + "Class", + "Title", + "Path" + ] + }, + "matching_strategy": { + "type": "string", + "enum": [ + "Legacy", + "Equals", + "StartsWith", + "EndsWith", + "Contains", + "Regex", + "DoesNotEndWith", + "DoesNotStartWith", + "DoesNotEqual", + "DoesNotContain" + ] + } + } + } } - } + ] } }, "resize_delta": { @@ -813,36 +1082,83 @@ "description": "Identify tray and multi-window applications", "type": "array", "items": { - "type": "object", - "required": [ - "id", - "kind" - ], - "properties": { - "id": { - "type": "string" + "anyOf": [ + { + "type": "object", + "required": [ + "id", + "kind" + ], + "properties": { + "id": { + "type": "string" + }, + "kind": { + "type": "string", + "enum": [ + "Exe", + "Class", + "Title", + "Path" + ] + }, + "matching_strategy": { + "type": "string", + "enum": [ + "Legacy", + "Equals", + "StartsWith", + "EndsWith", + "Contains", + "Regex", + "DoesNotEndWith", + "DoesNotStartWith", + "DoesNotEqual", + "DoesNotContain" + ] + } + } }, - "kind": { - "type": "string", - "enum": [ - "Exe", - "Class", - "Title", - "Path" - ] - }, - "matching_strategy": { - "type": "string", - "enum": [ - "Legacy", - "Equals", - "StartsWith", - "EndsWith", - "Contains", - "Regex" - ] + { + "type": "array", + "items": { + "type": "object", + "required": [ + "id", + "kind" + ], + "properties": { + "id": { + "type": "string" + }, + "kind": { + "type": "string", + "enum": [ + "Exe", + "Class", + "Title", + "Path" + ] + }, + "matching_strategy": { + "type": "string", + "enum": [ + "Legacy", + "Equals", + "StartsWith", + "EndsWith", + "Contains", + "Regex", + "DoesNotEndWith", + "DoesNotStartWith", + "DoesNotEqual", + "DoesNotContain" + ] + } + } + } } - } + ] } }, "unmanaged_window_operation_behaviour": {