From 0b67c1c0f4f1f2f2cdf5368d307698f8606a0fad Mon Sep 17 00:00:00 2001 From: LGUG2Z Date: Sun, 12 Nov 2023 14:13:06 -0800 Subject: [PATCH] docs(schema): generate with json-schema-for-humans --- justfile | 3 + schema_doc.md | 1258 +++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 1261 insertions(+) create mode 100644 schema_doc.md diff --git a/justfile b/justfile index 553aa92c..90826290 100644 --- a/justfile +++ b/justfile @@ -28,6 +28,9 @@ install: cat '~/.config/komorebi/komorebi.generated.ahk' >komorebi.generated.ahk cat '~/.config/komorebi/komorebic.lib_newV2.ahk' >komorebic.lib.ahk +docs: + generate-schema-doc .\schema.json --config template_name=md + run: just install-komorebic cargo +stable run --bin komorebi --locked -- -a diff --git a/schema_doc.md b/schema_doc.md new file mode 100644 index 00000000..a097ac30 --- /dev/null +++ b/schema_doc.md @@ -0,0 +1,1258 @@ +# StaticConfig + +**Title:** StaticConfig + +| | | +| ------------------------- | ------------------------------------------------------------------------- | +| **Type** | `object` | +| **Required** | No | +| **Additional properties** | [[Any type: allowed]](# "Additional Properties of any type are allowed.") | + +| Property | Pattern | Type | Deprecated | Definition | Title/Description | +| -------------------------------------------------------------------------------- | ------- | --------------- | ---------- | ---------- | ---------------------------------------------------------------------------------------------------------- | +| - [active_window_border](#active_window_border ) | No | boolean or null | No | - | Display an active window border (default: false) | +| - [active_window_border_colours](#active_window_border_colours ) | No | Combination | No | - | Active window border colours for different container types | +| - [active_window_border_offset](#active_window_border_offset ) | No | integer or null | No | - | Offset of the active window border (default: None) | +| - [active_window_border_width](#active_window_border_width ) | No | integer or null | No | - | Width of the active window border (default: 20) | +| - [alt_focus_hack](#alt_focus_hack ) | No | boolean or null | No | - | Always send the ALT key when using focus commands (default: false) | +| - [app_specific_configuration_path](#app_specific_configuration_path ) | No | string or null | No | - | Path to applications.yaml from komorebi-application-specific-configurations (default: None) | +| - [border_offset](#border_offset ) | No | Combination | No | - | DEPRECATED from v0.1.19: use active_window_border_offset instead | +| - [border_overflow_applications](#border_overflow_applications ) | No | array or null | No | - | Identify border overflow applications | +| - [border_width](#border_width ) | No | integer or null | No | - | DEPRECATED from v0.1.19: use active_window_border_width instead | +| - [cross_monitor_move_behaviour](#cross_monitor_move_behaviour ) | No | Combination | No | - | Determine what happens when a window is moved across a monitor boundary (default: Swap) | +| - [default_container_padding](#default_container_padding ) | No | integer or null | No | - | Global default container padding (default: 10) | +| - [default_workspace_padding](#default_workspace_padding ) | No | integer or null | No | - | Global default workspace padding (default: 10) | +| - [float_rules](#float_rules ) | No | array or null | No | - | Individual window floating rules | +| - [focus_follows_mouse](#focus_follows_mouse ) | No | Combination | No | - | Determine focus follows mouse implementation (default: None) | +| - [global_work_area_offset](#global_work_area_offset ) | No | Combination | No | - | Global work area (space used for tiling) offset (default: None) | +| - [invisible_borders](#invisible_borders ) | No | Combination | No | - | Dimensions of Windows' own invisible borders; don't set these yourself unless you are told to | +| - [layered_applications](#layered_applications ) | No | array or null | No | - | Identify applications that have the WS_EX_LAYERED extended window style | +| - [manage_rules](#manage_rules ) | No | array or null | No | - | Individual window force-manage rules | +| - [monitor_index_preferences](#monitor_index_preferences ) | No | object or null | No | - | Set monitor index preferences | +| - [monitors](#monitors ) | No | array or null | No | - | Monitor and workspace configurations | +| - [mouse_follows_focus](#mouse_follows_focus ) | No | boolean or null | No | - | Enable or disable mouse follows focus (default: true) | +| - [object_name_change_applications](#object_name_change_applications ) | No | array or null | No | - | Identify applications that send EVENT_OBJECT_NAMECHANGE on launch (very rare) | +| - [resize_delta](#resize_delta ) | No | integer or null | No | - | Delta to resize windows by (default 50) | +| - [tray_and_multi_window_applications](#tray_and_multi_window_applications ) | No | array or null | No | - | Identify tray and multi-window applications | +| - [unmanaged_window_operation_behaviour](#unmanaged_window_operation_behaviour ) | No | Combination | No | - | Determine what happens when commands are sent while an unmanaged window is in the foreground (default: Op) | +| - [window_container_behaviour](#window_container_behaviour ) | No | Combination | No | - | Determine what happens when a new window is opened (default: Create) | +| - [window_hiding_behaviour](#window_hiding_behaviour ) | No | Combination | No | - | Which Windows signal to use when hiding windows (default: minimize) | + +## 1. Property `StaticConfig > active_window_border` + +| | | +| ------------ | ----------------- | +| **Type** | `boolean or null` | +| **Required** | No | + +**Description:** Display an active window border (default: false) + +## 2. Property `StaticConfig > active_window_border_colours` + +| | | +| ------------------------- | ------------------------------------------------------------------------- | +| **Type** | `combining` | +| **Required** | No | +| **Additional properties** | [[Any type: allowed]](# "Additional Properties of any type are allowed.") | + +**Description:** Active window border colours for different container types + +| Any of(Option) | +| ------------------------------------------------------------------- | +| [ActiveWindowBorderColours](#active_window_border_colours_anyOf_i0) | +| [item 1](#active_window_border_colours_anyOf_i1) | + +### 2.1. Property `StaticConfig > active_window_border_colours > anyOf > ActiveWindowBorderColours` + +| | | +| ------------------------- | ------------------------------------------------------------------------- | +| **Type** | `object` | +| **Required** | No | +| **Additional properties** | [[Any type: allowed]](# "Additional Properties of any type are allowed.") | +| **Defined in** | #/definitions/ActiveWindowBorderColours | + +| Property | Pattern | Type | Deprecated | Definition | Title/Description | +| ------------------------------------------------------------ | ------- | ------ | ---------- | ------------------------------------------------------------------ | ---------------------------------------------------------- | +| + [monocle](#active_window_border_colours_anyOf_i0_monocle ) | No | object | No | In | Border colour when the container is in monocle mode | +| + [single](#active_window_border_colours_anyOf_i0_single ) | No | object | No | Same as [monocle](#active_window_border_colours_anyOf_i0_monocle ) | Border colour when the container contains a single window | +| + [stack](#active_window_border_colours_anyOf_i0_stack ) | No | object | No | Same as [monocle](#active_window_border_colours_anyOf_i0_monocle ) | Border colour when the container contains multiple windows | + +#### 2.1.1. Property `StaticConfig > active_window_border_colours > anyOf > item 0 > monocle` + +| | | +| ------------------------- | ------------------------------------------------------------------------- | +| **Type** | `object` | +| **Required** | Yes | +| **Additional properties** | [[Any type: allowed]](# "Additional Properties of any type are allowed.") | +| **Defined in** | | + +**Description:** Border colour when the container is in monocle mode + +| Property | Pattern | Type | Deprecated | Definition | Title/Description | +| -------------------------------------------------------- | ------- | ------- | ---------- | ---------- | ----------------- | +| + [b](#active_window_border_colours_anyOf_i0_monocle_b ) | No | integer | No | - | Blue | +| + [g](#active_window_border_colours_anyOf_i0_monocle_g ) | No | integer | No | - | Green | +| + [r](#active_window_border_colours_anyOf_i0_monocle_r ) | No | integer | No | - | Red | + +##### 2.1.1.1. Property `StaticConfig > active_window_border_colours > anyOf > item 0 > monocle > b` + +| | | +| ------------ | --------- | +| **Type** | `integer` | +| **Required** | Yes | +| **Format** | `uint32` | + +**Description:** Blue + +| Restrictions | | +| ------------ | -------- | +| **Minimum** | ≥ 0.0 | + +##### 2.1.1.2. Property `StaticConfig > active_window_border_colours > anyOf > item 0 > monocle > g` + +| | | +| ------------ | --------- | +| **Type** | `integer` | +| **Required** | Yes | +| **Format** | `uint32` | + +**Description:** Green + +| Restrictions | | +| ------------ | -------- | +| **Minimum** | ≥ 0.0 | + +##### 2.1.1.3. Property `StaticConfig > active_window_border_colours > anyOf > item 0 > monocle > r` + +| | | +| ------------ | --------- | +| **Type** | `integer` | +| **Required** | Yes | +| **Format** | `uint32` | + +**Description:** Red + +| Restrictions | | +| ------------ | -------- | +| **Minimum** | ≥ 0.0 | + +#### 2.1.2. Property `StaticConfig > active_window_border_colours > anyOf > item 0 > single` + +| | | +| ------------------------- | ------------------------------------------------------------------------- | +| **Type** | `object` | +| **Required** | Yes | +| **Additional properties** | [[Any type: allowed]](# "Additional Properties of any type are allowed.") | +| **Same definition as** | [monocle](#active_window_border_colours_anyOf_i0_monocle) | + +**Description:** Border colour when the container contains a single window + +#### 2.1.3. Property `StaticConfig > active_window_border_colours > anyOf > item 0 > stack` + +| | | +| ------------------------- | ------------------------------------------------------------------------- | +| **Type** | `object` | +| **Required** | Yes | +| **Additional properties** | [[Any type: allowed]](# "Additional Properties of any type are allowed.") | +| **Same definition as** | [monocle](#active_window_border_colours_anyOf_i0_monocle) | + +**Description:** Border colour when the container contains multiple windows + +### 2.2. Property `StaticConfig > active_window_border_colours > anyOf > item 1` + +| | | +| ------------ | ------ | +| **Type** | `null` | +| **Required** | No | + +## 3. Property `StaticConfig > active_window_border_offset` + +| | | +| ------------ | ----------------- | +| **Type** | `integer or null` | +| **Required** | No | +| **Format** | `int32` | + +**Description:** Offset of the active window border (default: None) + +## 4. Property `StaticConfig > active_window_border_width` + +| | | +| ------------ | ----------------- | +| **Type** | `integer or null` | +| **Required** | No | +| **Format** | `int32` | + +**Description:** Width of the active window border (default: 20) + +## 5. Property `StaticConfig > alt_focus_hack` + +| | | +| ------------ | ----------------- | +| **Type** | `boolean or null` | +| **Required** | No | + +**Description:** Always send the ALT key when using focus commands (default: false) + +## 6. Property `StaticConfig > app_specific_configuration_path` + +| | | +| ------------ | ---------------- | +| **Type** | `string or null` | +| **Required** | No | + +**Description:** Path to applications.yaml from komorebi-application-specific-configurations (default: None) + +## 7. Property `StaticConfig > border_offset` + +| | | +| ------------------------- | ------------------------------------------------------------------------- | +| **Type** | `combining` | +| **Required** | No | +| **Additional properties** | [[Any type: allowed]](# "Additional Properties of any type are allowed.") | + +**Description:** DEPRECATED from v0.1.19: use active_window_border_offset instead + +| Any of(Option) | +| --------------------------------- | +| [Rect](#border_offset_anyOf_i0) | +| [item 1](#border_offset_anyOf_i1) | + +### 7.1. Property `StaticConfig > border_offset > anyOf > Rect` + +| | | +| ------------------------- | ------------------------------------------------------------------------- | +| **Type** | `object` | +| **Required** | No | +| **Additional properties** | [[Any type: allowed]](# "Additional Properties of any type are allowed.") | +| **Defined in** | #/definitions/Rect | + +| Property | Pattern | Type | Deprecated | Definition | Title/Description | +| ------------------------------------------- | ------- | ------- | ---------- | ---------- | -------------------------------- | +| + [bottom](#border_offset_anyOf_i0_bottom ) | No | integer | No | - | The bottom point in a Win32 Rect | +| + [left](#border_offset_anyOf_i0_left ) | No | integer | No | - | The left point in a Win32 Rect | +| + [right](#border_offset_anyOf_i0_right ) | No | integer | No | - | The right point in a Win32 Rect | +| + [top](#border_offset_anyOf_i0_top ) | No | integer | No | - | The top point in a Win32 Rect | + +#### 7.1.1. Property `StaticConfig > border_offset > anyOf > item 0 > bottom` + +| | | +| ------------ | --------- | +| **Type** | `integer` | +| **Required** | Yes | +| **Format** | `int32` | + +**Description:** The bottom point in a Win32 Rect + +#### 7.1.2. Property `StaticConfig > border_offset > anyOf > item 0 > left` + +| | | +| ------------ | --------- | +| **Type** | `integer` | +| **Required** | Yes | +| **Format** | `int32` | + +**Description:** The left point in a Win32 Rect + +#### 7.1.3. Property `StaticConfig > border_offset > anyOf > item 0 > right` + +| | | +| ------------ | --------- | +| **Type** | `integer` | +| **Required** | Yes | +| **Format** | `int32` | + +**Description:** The right point in a Win32 Rect + +#### 7.1.4. Property `StaticConfig > border_offset > anyOf > item 0 > top` + +| | | +| ------------ | --------- | +| **Type** | `integer` | +| **Required** | Yes | +| **Format** | `int32` | + +**Description:** The top point in a Win32 Rect + +### 7.2. Property `StaticConfig > border_offset > anyOf > item 1` + +| | | +| ------------ | ------ | +| **Type** | `null` | +| **Required** | No | + +## 8. Property `StaticConfig > border_overflow_applications` + +| | | +| ------------ | --------------- | +| **Type** | `array or null` | +| **Required** | No | + +**Description:** Identify border overflow applications + +| | Array restrictions | +| -------------------- | ------------------ | +| **Min items** | N/A | +| **Max items** | N/A | +| **Items unicity** | False | +| **Additional items** | False | +| **Tuple validation** | See below | + +| Each item of this array must be | Description | +| ------------------------------------------------------- | ----------- | +| [IdWithIdentifier](#border_overflow_applications_items) | - | + +### 8.1. StaticConfig > border_overflow_applications > IdWithIdentifier + +| | | +| ------------------------- | ------------------------------------------------------------------------- | +| **Type** | `object` | +| **Required** | No | +| **Additional properties** | [[Any type: allowed]](# "Additional Properties of any type are allowed.") | +| **Defined in** | #/definitions/IdWithIdentifier | + +| Property | Pattern | Type | Deprecated | Definition | Title/Description | +| ----------------------------------------------------------------------------- | ------- | ---------------- | ---------- | -------------------------------------- | ----------------- | +| + [id](#border_overflow_applications_items_id ) | No | string | No | - | - | +| + [kind](#border_overflow_applications_items_kind ) | No | enum (of string) | No | In #/definitions/ApplicationIdentifier | - | +| - [matching_strategy](#border_overflow_applications_items_matching_strategy ) | No | Combination | No | - | - | + +#### 8.1.1. Property `StaticConfig > border_overflow_applications > border_overflow_applications items > id` + +| | | +| ------------ | -------- | +| **Type** | `string` | +| **Required** | Yes | + +#### 8.1.2. Property `StaticConfig > border_overflow_applications > border_overflow_applications items > kind` + +| | | +| -------------- | ----------------------------------- | +| **Type** | `enum (of string)` | +| **Required** | Yes | +| **Defined in** | #/definitions/ApplicationIdentifier | + +Must be one of: +* "Exe" +* "Class" +* "Title" + +#### 8.1.3. Property `StaticConfig > border_overflow_applications > border_overflow_applications items > matching_strategy` + +| | | +| ------------------------- | ------------------------------------------------------------------------- | +| **Type** | `combining` | +| **Required** | No | +| **Additional properties** | [[Any type: allowed]](# "Additional Properties of any type are allowed.") | + +| Any of(Option) | +| ---------------------------------------------------------------------------------- | +| [MatchingStrategy](#border_overflow_applications_items_matching_strategy_anyOf_i0) | +| [item 1](#border_overflow_applications_items_matching_strategy_anyOf_i1) | + +##### 8.1.3.1. Property `StaticConfig > border_overflow_applications > border_overflow_applications items > matching_strategy > anyOf > MatchingStrategy` + +| | | +| -------------- | ------------------------------ | +| **Type** | `enum (of string)` | +| **Required** | No | +| **Defined in** | #/definitions/MatchingStrategy | + +Must be one of: +* "Legacy" +* "Equals" +* "StartsWith" +* "EndsWith" +* "Contains" +* "Regex" + +##### 8.1.3.2. Property `StaticConfig > border_overflow_applications > border_overflow_applications items > matching_strategy > anyOf > item 1` + +| | | +| ------------ | ------ | +| **Type** | `null` | +| **Required** | No | + +## 9. Property `StaticConfig > border_width` + +| | | +| ------------ | ----------------- | +| **Type** | `integer or null` | +| **Required** | No | +| **Format** | `int32` | + +**Description:** DEPRECATED from v0.1.19: use active_window_border_width instead + +## 10. Property `StaticConfig > cross_monitor_move_behaviour` + +| | | +| ------------------------- | ------------------------------------------------------------------------- | +| **Type** | `combining` | +| **Required** | No | +| **Additional properties** | [[Any type: allowed]](# "Additional Properties of any type are allowed.") | + +**Description:** Determine what happens when a window is moved across a monitor boundary (default: Swap) + +| Any of(Option) | +| ------------------------------------------------------- | +| [MoveBehaviour](#cross_monitor_move_behaviour_anyOf_i0) | +| [item 1](#cross_monitor_move_behaviour_anyOf_i1) | + +### 10.1. Property `StaticConfig > cross_monitor_move_behaviour > anyOf > MoveBehaviour` + +| | | +| ------------------------- | ------------------------------------------------------------------------- | +| **Type** | `combining` | +| **Required** | No | +| **Additional properties** | [[Any type: allowed]](# "Additional Properties of any type are allowed.") | +| **Defined in** | #/definitions/MoveBehaviour | + +| One of(Option) | +| --------------------------------------------------------- | +| [item 0](#cross_monitor_move_behaviour_anyOf_i0_oneOf_i0) | +| [item 1](#cross_monitor_move_behaviour_anyOf_i0_oneOf_i1) | + +#### 10.1.1. Property `StaticConfig > cross_monitor_move_behaviour > anyOf > item 0 > oneOf > item 0` + +| | | +| ------------ | ------------------ | +| **Type** | `enum (of string)` | +| **Required** | No | + +**Description:** Swap the window container with the window container at the edge of the adjacent monitor + +Must be one of: +* "Swap" + +#### 10.1.2. Property `StaticConfig > cross_monitor_move_behaviour > anyOf > item 0 > oneOf > item 1` + +| | | +| ------------ | ------------------ | +| **Type** | `enum (of string)` | +| **Required** | No | + +**Description:** Insert the window container into the focused workspace on the adjacent monitor + +Must be one of: +* "Insert" + +### 10.2. Property `StaticConfig > cross_monitor_move_behaviour > anyOf > item 1` + +| | | +| ------------ | ------ | +| **Type** | `null` | +| **Required** | No | + +## 11. Property `StaticConfig > default_container_padding` + +| | | +| ------------ | ----------------- | +| **Type** | `integer or null` | +| **Required** | No | +| **Format** | `int32` | + +**Description:** Global default container padding (default: 10) + +## 12. Property `StaticConfig > default_workspace_padding` + +| | | +| ------------ | ----------------- | +| **Type** | `integer or null` | +| **Required** | No | +| **Format** | `int32` | + +**Description:** Global default workspace padding (default: 10) + +## 13. Property `StaticConfig > float_rules` + +| | | +| ------------ | --------------- | +| **Type** | `array or null` | +| **Required** | No | + +**Description:** Individual window floating rules + +| | Array restrictions | +| -------------------- | ------------------ | +| **Min items** | N/A | +| **Max items** | N/A | +| **Items unicity** | False | +| **Additional items** | False | +| **Tuple validation** | See below | + +| Each item of this array must be | Description | +| -------------------------------------- | ----------- | +| [IdWithIdentifier](#float_rules_items) | - | + +### 13.1. StaticConfig > float_rules > IdWithIdentifier + +| | | +| ------------------------- | ------------------------------------------------------------------------- | +| **Type** | `object` | +| **Required** | No | +| **Additional properties** | [[Any type: allowed]](# "Additional Properties of any type are allowed.") | +| **Same definition as** | [border_overflow_applications_items](#border_overflow_applications_items) | + +## 14. Property `StaticConfig > focus_follows_mouse` + +| | | +| ------------------------- | ------------------------------------------------------------------------- | +| **Type** | `combining` | +| **Required** | No | +| **Additional properties** | [[Any type: allowed]](# "Additional Properties of any type are allowed.") | + +**Description:** Determine focus follows mouse implementation (default: None) + +| Any of(Option) | +| ---------------------------------------------------------------- | +| [FocusFollowsMouseImplementation](#focus_follows_mouse_anyOf_i0) | +| [item 1](#focus_follows_mouse_anyOf_i1) | + +### 14.1. Property `StaticConfig > focus_follows_mouse > anyOf > FocusFollowsMouseImplementation` + +| | | +| ------------------------- | ------------------------------------------------------------------------- | +| **Type** | `combining` | +| **Required** | No | +| **Additional properties** | [[Any type: allowed]](# "Additional Properties of any type are allowed.") | +| **Defined in** | #/definitions/FocusFollowsMouseImplementation | + +| One of(Option) | +| ------------------------------------------------ | +| [item 0](#focus_follows_mouse_anyOf_i0_oneOf_i0) | +| [item 1](#focus_follows_mouse_anyOf_i0_oneOf_i1) | + +#### 14.1.1. Property `StaticConfig > focus_follows_mouse > anyOf > item 0 > oneOf > item 0` + +| | | +| ------------ | ------------------ | +| **Type** | `enum (of string)` | +| **Required** | No | + +**Description:** A custom FFM implementation (slightly more CPU-intensive) + +Must be one of: +* "Komorebi" + +#### 14.1.2. Property `StaticConfig > focus_follows_mouse > anyOf > item 0 > oneOf > item 1` + +| | | +| ------------ | ------------------ | +| **Type** | `enum (of string)` | +| **Required** | No | + +**Description:** The native (legacy) Windows FFM implementation + +Must be one of: +* "Windows" + +### 14.2. Property `StaticConfig > focus_follows_mouse > anyOf > item 1` + +| | | +| ------------ | ------ | +| **Type** | `null` | +| **Required** | No | + +## 15. Property `StaticConfig > global_work_area_offset` + +| | | +| ------------------------- | ------------------------------------------------------------------------- | +| **Type** | `combining` | +| **Required** | No | +| **Additional properties** | [[Any type: allowed]](# "Additional Properties of any type are allowed.") | + +**Description:** Global work area (space used for tiling) offset (default: None) + +| Any of(Option) | +| ------------------------------------------- | +| [Rect](#global_work_area_offset_anyOf_i0) | +| [item 1](#global_work_area_offset_anyOf_i1) | + +### 15.1. Property `StaticConfig > global_work_area_offset > anyOf > Rect` + +| | | +| ------------------------- | ------------------------------------------------------------------------- | +| **Type** | `object` | +| **Required** | No | +| **Additional properties** | [[Any type: allowed]](# "Additional Properties of any type are allowed.") | +| **Same definition as** | [border_offset_anyOf_i0](#border_offset_anyOf_i0) | + +### 15.2. Property `StaticConfig > global_work_area_offset > anyOf > item 1` + +| | | +| ------------ | ------ | +| **Type** | `null` | +| **Required** | No | + +## 16. Property `StaticConfig > invisible_borders` + +| | | +| ------------------------- | ------------------------------------------------------------------------- | +| **Type** | `combining` | +| **Required** | No | +| **Additional properties** | [[Any type: allowed]](# "Additional Properties of any type are allowed.") | + +**Description:** Dimensions of Windows' own invisible borders; don't set these yourself unless you are told to + +| Any of(Option) | +| ------------------------------------- | +| [Rect](#invisible_borders_anyOf_i0) | +| [item 1](#invisible_borders_anyOf_i1) | + +### 16.1. Property `StaticConfig > invisible_borders > anyOf > Rect` + +| | | +| ------------------------- | ------------------------------------------------------------------------- | +| **Type** | `object` | +| **Required** | No | +| **Additional properties** | [[Any type: allowed]](# "Additional Properties of any type are allowed.") | +| **Same definition as** | [border_offset_anyOf_i0](#border_offset_anyOf_i0) | + +### 16.2. Property `StaticConfig > invisible_borders > anyOf > item 1` + +| | | +| ------------ | ------ | +| **Type** | `null` | +| **Required** | No | + +## 17. Property `StaticConfig > layered_applications` + +| | | +| ------------ | --------------- | +| **Type** | `array or null` | +| **Required** | No | + +**Description:** Identify applications that have the WS_EX_LAYERED extended window style + +| | Array restrictions | +| -------------------- | ------------------ | +| **Min items** | N/A | +| **Max items** | N/A | +| **Items unicity** | False | +| **Additional items** | False | +| **Tuple validation** | See below | + +| Each item of this array must be | Description | +| ----------------------------------------------- | ----------- | +| [IdWithIdentifier](#layered_applications_items) | - | + +### 17.1. StaticConfig > layered_applications > IdWithIdentifier + +| | | +| ------------------------- | ------------------------------------------------------------------------- | +| **Type** | `object` | +| **Required** | No | +| **Additional properties** | [[Any type: allowed]](# "Additional Properties of any type are allowed.") | +| **Same definition as** | [border_overflow_applications_items](#border_overflow_applications_items) | + +## 18. Property `StaticConfig > manage_rules` + +| | | +| ------------ | --------------- | +| **Type** | `array or null` | +| **Required** | No | + +**Description:** Individual window force-manage rules + +| | Array restrictions | +| -------------------- | ------------------ | +| **Min items** | N/A | +| **Max items** | N/A | +| **Items unicity** | False | +| **Additional items** | False | +| **Tuple validation** | See below | + +| Each item of this array must be | Description | +| --------------------------------------- | ----------- | +| [IdWithIdentifier](#manage_rules_items) | - | + +### 18.1. StaticConfig > manage_rules > IdWithIdentifier + +| | | +| ------------------------- | ------------------------------------------------------------------------- | +| **Type** | `object` | +| **Required** | No | +| **Additional properties** | [[Any type: allowed]](# "Additional Properties of any type are allowed.") | +| **Same definition as** | [border_overflow_applications_items](#border_overflow_applications_items) | + +## 19. Property `StaticConfig > monitor_index_preferences` + +| | | +| ------------ | ---------------- | +| **Type** | `object or null` | +| **Required** | No | + +**Description:** Set monitor index preferences + +| Property | Pattern | Type | Deprecated | Definition | Title/Description | +| ------------------------------------------------------ | ------- | ------ | ---------- | ---------------------------------------------------------- | ----------------- | +| - [](#monitor_index_preferences_additionalProperties ) | No | object | No | Same as [border_offset_anyOf_i0](#border_offset_anyOf_i0 ) | - | + +### 19.1. Property `StaticConfig > monitor_index_preferences > Rect` + +| | | +| ------------------------- | ------------------------------------------------------------------------- | +| **Type** | `object` | +| **Required** | No | +| **Additional properties** | [[Any type: allowed]](# "Additional Properties of any type are allowed.") | +| **Same definition as** | [border_offset_anyOf_i0](#border_offset_anyOf_i0) | + +## 20. Property `StaticConfig > monitors` + +| | | +| ------------ | --------------- | +| **Type** | `array or null` | +| **Required** | No | + +**Description:** Monitor and workspace configurations + +| | Array restrictions | +| -------------------- | ------------------ | +| **Min items** | N/A | +| **Max items** | N/A | +| **Items unicity** | False | +| **Additional items** | False | +| **Tuple validation** | See below | + +| Each item of this array must be | Description | +| -------------------------------- | ----------- | +| [MonitorConfig](#monitors_items) | - | + +### 20.1. StaticConfig > monitors > MonitorConfig + +| | | +| ------------------------- | ------------------------------------------------------------------------- | +| **Type** | `object` | +| **Required** | No | +| **Additional properties** | [[Any type: allowed]](# "Additional Properties of any type are allowed.") | +| **Defined in** | #/definitions/MonitorConfig | + +| Property | Pattern | Type | Deprecated | Definition | Title/Description | +| ------------------------------------------------------- | ------- | ----------- | ---------- | ---------- | ------------------------------------------------- | +| - [work_area_offset](#monitors_items_work_area_offset ) | No | Combination | No | - | Monitor-specific work area offset (default: None) | +| + [workspaces](#monitors_items_workspaces ) | No | array | No | - | Workspace configurations | + +#### 20.1.1. Property `StaticConfig > monitors > monitors items > work_area_offset` + +| | | +| ------------------------- | ------------------------------------------------------------------------- | +| **Type** | `combining` | +| **Required** | No | +| **Additional properties** | [[Any type: allowed]](# "Additional Properties of any type are allowed.") | + +**Description:** Monitor-specific work area offset (default: None) + +| Any of(Option) | +| --------------------------------------------------- | +| [Rect](#monitors_items_work_area_offset_anyOf_i0) | +| [item 1](#monitors_items_work_area_offset_anyOf_i1) | + +##### 20.1.1.1. Property `StaticConfig > monitors > monitors items > work_area_offset > anyOf > Rect` + +| | | +| ------------------------- | ------------------------------------------------------------------------- | +| **Type** | `object` | +| **Required** | No | +| **Additional properties** | [[Any type: allowed]](# "Additional Properties of any type are allowed.") | +| **Same definition as** | [border_offset_anyOf_i0](#border_offset_anyOf_i0) | + +##### 20.1.1.2. Property `StaticConfig > monitors > monitors items > work_area_offset > anyOf > item 1` + +| | | +| ------------ | ------ | +| **Type** | `null` | +| **Required** | No | + +#### 20.1.2. Property `StaticConfig > monitors > monitors items > workspaces` + +| | | +| ------------ | ------- | +| **Type** | `array` | +| **Required** | Yes | + +**Description:** Workspace configurations + +| | Array restrictions | +| -------------------- | ------------------ | +| **Min items** | N/A | +| **Max items** | N/A | +| **Items unicity** | False | +| **Additional items** | False | +| **Tuple validation** | See below | + +| Each item of this array must be | Description | +| --------------------------------------------------- | ----------- | +| [WorkspaceConfig](#monitors_items_workspaces_items) | - | + +##### 20.1.2.1. StaticConfig > monitors > monitors items > workspaces > WorkspaceConfig + +| | | +| ------------------------- | ------------------------------------------------------------------------- | +| **Type** | `object` | +| **Required** | No | +| **Additional properties** | [[Any type: allowed]](# "Additional Properties of any type are allowed.") | +| **Defined in** | #/definitions/WorkspaceConfig | + +| Property | Pattern | Type | Deprecated | Definition | Title/Description | +| -------------------------------------------------------------------------------------- | ------- | --------------- | ---------- | ---------- | ------------------------------------- | +| - [container_padding](#monitors_items_workspaces_items_container_padding ) | No | integer or null | No | - | Container padding (default: global) | +| - [custom_layout](#monitors_items_workspaces_items_custom_layout ) | No | string or null | No | - | Custom Layout (default: None) | +| - [custom_layout_rules](#monitors_items_workspaces_items_custom_layout_rules ) | No | object or null | No | - | Layout rules (default: None) | +| - [initial_workspace_rules](#monitors_items_workspaces_items_initial_workspace_rules ) | No | array or null | No | - | Initial workspace application rules | +| - [layout](#monitors_items_workspaces_items_layout ) | No | Combination | No | - | Layout (default: BSP) | +| - [layout_rules](#monitors_items_workspaces_items_layout_rules ) | No | object or null | No | - | Layout rules (default: None) | +| + [name](#monitors_items_workspaces_items_name ) | No | string | No | - | Name | +| - [workspace_padding](#monitors_items_workspaces_items_workspace_padding ) | No | integer or null | No | - | Container padding (default: global) | +| - [workspace_rules](#monitors_items_workspaces_items_workspace_rules ) | No | array or null | No | - | Permanent workspace application rules | + +##### 20.1.2.1.1. Property `StaticConfig > monitors > monitors items > workspaces > workspaces items > container_padding` + +| | | +| ------------ | ----------------- | +| **Type** | `integer or null` | +| **Required** | No | +| **Format** | `int32` | + +**Description:** Container padding (default: global) + +##### 20.1.2.1.2. Property `StaticConfig > monitors > monitors items > workspaces > workspaces items > custom_layout` + +| | | +| ------------ | ---------------- | +| **Type** | `string or null` | +| **Required** | No | + +**Description:** Custom Layout (default: None) + +##### 20.1.2.1.3. Property `StaticConfig > monitors > monitors items > workspaces > workspaces items > custom_layout_rules` + +| | | +| ------------ | ---------------- | +| **Type** | `object or null` | +| **Required** | No | + +**Description:** Layout rules (default: None) + +| Property | Pattern | Type | Deprecated | Definition | Title/Description | +| -------------------------------------------------------------------------------- | ------- | ------ | ---------- | ---------- | ----------------- | +| - [](#monitors_items_workspaces_items_custom_layout_rules_additionalProperties ) | No | string | No | - | - | + +##### 20.1.2.1.3.1. Property `StaticConfig > monitors > monitors items > workspaces > workspaces items > custom_layout_rules > additionalProperties` + +| | | +| ------------ | -------- | +| **Type** | `string` | +| **Required** | No | + +##### 20.1.2.1.4. Property `StaticConfig > monitors > monitors items > workspaces > workspaces items > initial_workspace_rules` + +| | | +| ------------ | --------------- | +| **Type** | `array or null` | +| **Required** | No | + +**Description:** Initial workspace application rules + +| | Array restrictions | +| -------------------- | ------------------ | +| **Min items** | N/A | +| **Max items** | N/A | +| **Items unicity** | False | +| **Additional items** | False | +| **Tuple validation** | See below | + +| Each item of this array must be | Description | +| ---------------------------------------------------------------------------------- | ----------- | +| [IdWithIdentifier](#monitors_items_workspaces_items_initial_workspace_rules_items) | - | + +##### 20.1.2.1.4.1. StaticConfig > monitors > monitors items > workspaces > workspaces items > initial_workspace_rules > IdWithIdentifier + +| | | +| ------------------------- | ------------------------------------------------------------------------- | +| **Type** | `object` | +| **Required** | No | +| **Additional properties** | [[Any type: allowed]](# "Additional Properties of any type are allowed.") | +| **Same definition as** | [border_overflow_applications_items](#border_overflow_applications_items) | + +##### 20.1.2.1.5. Property `StaticConfig > monitors > monitors items > workspaces > workspaces items > layout` + +| | | +| ------------------------- | ------------------------------------------------------------------------- | +| **Type** | `combining` | +| **Required** | No | +| **Additional properties** | [[Any type: allowed]](# "Additional Properties of any type are allowed.") | + +**Description:** Layout (default: BSP) + +| Any of(Option) | +| ----------------------------------------------------------------- | +| [DefaultLayout](#monitors_items_workspaces_items_layout_anyOf_i0) | +| [item 1](#monitors_items_workspaces_items_layout_anyOf_i1) | + +##### 20.1.2.1.5.1. Property `StaticConfig > monitors > monitors items > workspaces > workspaces items > layout > anyOf > DefaultLayout` + +| | | +| -------------- | --------------------------- | +| **Type** | `enum (of string)` | +| **Required** | No | +| **Defined in** | #/definitions/DefaultLayout | + +Must be one of: +* "BSP" +* "Columns" +* "Rows" +* "VerticalStack" +* "HorizontalStack" +* "UltrawideVerticalStack" + +##### 20.1.2.1.5.2. Property `StaticConfig > monitors > monitors items > workspaces > workspaces items > layout > anyOf > item 1` + +| | | +| ------------ | ------ | +| **Type** | `null` | +| **Required** | No | + +##### 20.1.2.1.6. Property `StaticConfig > monitors > monitors items > workspaces > workspaces items > layout_rules` + +| | | +| ------------ | ---------------- | +| **Type** | `object or null` | +| **Required** | No | + +**Description:** Layout rules (default: None) + +| Property | Pattern | Type | Deprecated | Definition | Title/Description | +| ------------------------------------------------------------------------- | ------- | ---------------- | ---------- | ------------------------------------------------------------------------------------------------------------ | ----------------- | +| - [](#monitors_items_workspaces_items_layout_rules_additionalProperties ) | No | enum (of string) | No | Same as [monitors_items_workspaces_items_layout_anyOf_i0](#monitors_items_workspaces_items_layout_anyOf_i0 ) | - | + +##### 20.1.2.1.6.1. Property `StaticConfig > monitors > monitors items > workspaces > workspaces items > layout_rules > DefaultLayout` + +| | | +| ---------------------- | --------------------------------------------------------------------------------------------------- | +| **Type** | `enum (of string)` | +| **Required** | No | +| **Same definition as** | [monitors_items_workspaces_items_layout_anyOf_i0](#monitors_items_workspaces_items_layout_anyOf_i0) | + +##### 20.1.2.1.7. Property `StaticConfig > monitors > monitors items > workspaces > workspaces items > name` + +| | | +| ------------ | -------- | +| **Type** | `string` | +| **Required** | Yes | + +**Description:** Name + +##### 20.1.2.1.8. Property `StaticConfig > monitors > monitors items > workspaces > workspaces items > workspace_padding` + +| | | +| ------------ | ----------------- | +| **Type** | `integer or null` | +| **Required** | No | +| **Format** | `int32` | + +**Description:** Container padding (default: global) + +##### 20.1.2.1.9. Property `StaticConfig > monitors > monitors items > workspaces > workspaces items > workspace_rules` + +| | | +| ------------ | --------------- | +| **Type** | `array or null` | +| **Required** | No | + +**Description:** Permanent workspace application rules + +| | Array restrictions | +| -------------------- | ------------------ | +| **Min items** | N/A | +| **Max items** | N/A | +| **Items unicity** | False | +| **Additional items** | False | +| **Tuple validation** | See below | + +| Each item of this array must be | Description | +| -------------------------------------------------------------------------- | ----------- | +| [IdWithIdentifier](#monitors_items_workspaces_items_workspace_rules_items) | - | + +##### 20.1.2.1.9.1. StaticConfig > monitors > monitors items > workspaces > workspaces items > workspace_rules > IdWithIdentifier + +| | | +| ------------------------- | ------------------------------------------------------------------------- | +| **Type** | `object` | +| **Required** | No | +| **Additional properties** | [[Any type: allowed]](# "Additional Properties of any type are allowed.") | +| **Same definition as** | [border_overflow_applications_items](#border_overflow_applications_items) | + +## 21. Property `StaticConfig > mouse_follows_focus` + +| | | +| ------------ | ----------------- | +| **Type** | `boolean or null` | +| **Required** | No | + +**Description:** Enable or disable mouse follows focus (default: true) + +## 22. Property `StaticConfig > object_name_change_applications` + +| | | +| ------------ | --------------- | +| **Type** | `array or null` | +| **Required** | No | + +**Description:** Identify applications that send EVENT_OBJECT_NAMECHANGE on launch (very rare) + +| | Array restrictions | +| -------------------- | ------------------ | +| **Min items** | N/A | +| **Max items** | N/A | +| **Items unicity** | False | +| **Additional items** | False | +| **Tuple validation** | See below | + +| Each item of this array must be | Description | +| ---------------------------------------------------------- | ----------- | +| [IdWithIdentifier](#object_name_change_applications_items) | - | + +### 22.1. StaticConfig > object_name_change_applications > IdWithIdentifier + +| | | +| ------------------------- | ------------------------------------------------------------------------- | +| **Type** | `object` | +| **Required** | No | +| **Additional properties** | [[Any type: allowed]](# "Additional Properties of any type are allowed.") | +| **Same definition as** | [border_overflow_applications_items](#border_overflow_applications_items) | + +## 23. Property `StaticConfig > resize_delta` + +| | | +| ------------ | ----------------- | +| **Type** | `integer or null` | +| **Required** | No | +| **Format** | `int32` | + +**Description:** Delta to resize windows by (default 50) + +## 24. Property `StaticConfig > tray_and_multi_window_applications` + +| | | +| ------------ | --------------- | +| **Type** | `array or null` | +| **Required** | No | + +**Description:** Identify tray and multi-window applications + +| | Array restrictions | +| -------------------- | ------------------ | +| **Min items** | N/A | +| **Max items** | N/A | +| **Items unicity** | False | +| **Additional items** | False | +| **Tuple validation** | See below | + +| Each item of this array must be | Description | +| ------------------------------------------------------------- | ----------- | +| [IdWithIdentifier](#tray_and_multi_window_applications_items) | - | + +### 24.1. StaticConfig > tray_and_multi_window_applications > IdWithIdentifier + +| | | +| ------------------------- | ------------------------------------------------------------------------- | +| **Type** | `object` | +| **Required** | No | +| **Additional properties** | [[Any type: allowed]](# "Additional Properties of any type are allowed.") | +| **Same definition as** | [border_overflow_applications_items](#border_overflow_applications_items) | + +## 25. Property `StaticConfig > unmanaged_window_operation_behaviour` + +| | | +| ------------------------- | ------------------------------------------------------------------------- | +| **Type** | `combining` | +| **Required** | No | +| **Additional properties** | [[Any type: allowed]](# "Additional Properties of any type are allowed.") | + +**Description:** Determine what happens when commands are sent while an unmanaged window is in the foreground (default: Op) + +| Any of(Option) | +| -------------------------------------------------------------------- | +| [OperationBehaviour](#unmanaged_window_operation_behaviour_anyOf_i0) | +| [item 1](#unmanaged_window_operation_behaviour_anyOf_i1) | + +### 25.1. Property `StaticConfig > unmanaged_window_operation_behaviour > anyOf > OperationBehaviour` + +| | | +| ------------------------- | ------------------------------------------------------------------------- | +| **Type** | `combining` | +| **Required** | No | +| **Additional properties** | [[Any type: allowed]](# "Additional Properties of any type are allowed.") | +| **Defined in** | #/definitions/OperationBehaviour | + +| One of(Option) | +| ----------------------------------------------------------------- | +| [item 0](#unmanaged_window_operation_behaviour_anyOf_i0_oneOf_i0) | +| [item 1](#unmanaged_window_operation_behaviour_anyOf_i0_oneOf_i1) | + +#### 25.1.1. Property `StaticConfig > unmanaged_window_operation_behaviour > anyOf > item 0 > oneOf > item 0` + +| | | +| ------------ | ------------------ | +| **Type** | `enum (of string)` | +| **Required** | No | + +**Description:** Process komorebic commands on temporarily unmanaged/floated windows + +Must be one of: +* "Op" + +#### 25.1.2. Property `StaticConfig > unmanaged_window_operation_behaviour > anyOf > item 0 > oneOf > item 1` + +| | | +| ------------ | ------------------ | +| **Type** | `enum (of string)` | +| **Required** | No | + +**Description:** Ignore komorebic commands on temporarily unmanaged/floated windows + +Must be one of: +* "NoOp" + +### 25.2. Property `StaticConfig > unmanaged_window_operation_behaviour > anyOf > item 1` + +| | | +| ------------ | ------ | +| **Type** | `null` | +| **Required** | No | + +## 26. Property `StaticConfig > window_container_behaviour` + +| | | +| ------------------------- | ------------------------------------------------------------------------- | +| **Type** | `combining` | +| **Required** | No | +| **Additional properties** | [[Any type: allowed]](# "Additional Properties of any type are allowed.") | + +**Description:** Determine what happens when a new window is opened (default: Create) + +| Any of(Option) | +| ---------------------------------------------------------------- | +| [WindowContainerBehaviour](#window_container_behaviour_anyOf_i0) | +| [item 1](#window_container_behaviour_anyOf_i1) | + +### 26.1. Property `StaticConfig > window_container_behaviour > anyOf > WindowContainerBehaviour` + +| | | +| ------------------------- | ------------------------------------------------------------------------- | +| **Type** | `combining` | +| **Required** | No | +| **Additional properties** | [[Any type: allowed]](# "Additional Properties of any type are allowed.") | +| **Defined in** | #/definitions/WindowContainerBehaviour | + +| One of(Option) | +| ------------------------------------------------------- | +| [item 0](#window_container_behaviour_anyOf_i0_oneOf_i0) | +| [item 1](#window_container_behaviour_anyOf_i0_oneOf_i1) | + +#### 26.1.1. Property `StaticConfig > window_container_behaviour > anyOf > item 0 > oneOf > item 0` + +| | | +| ------------ | ------------------ | +| **Type** | `enum (of string)` | +| **Required** | No | + +**Description:** Create a new container for each new window + +Must be one of: +* "Create" + +#### 26.1.2. Property `StaticConfig > window_container_behaviour > anyOf > item 0 > oneOf > item 1` + +| | | +| ------------ | ------------------ | +| **Type** | `enum (of string)` | +| **Required** | No | + +**Description:** Append new windows to the focused window container + +Must be one of: +* "Append" + +### 26.2. Property `StaticConfig > window_container_behaviour > anyOf > item 1` + +| | | +| ------------ | ------ | +| **Type** | `null` | +| **Required** | No | + +## 27. Property `StaticConfig > window_hiding_behaviour` + +| | | +| ------------------------- | ------------------------------------------------------------------------- | +| **Type** | `combining` | +| **Required** | No | +| **Additional properties** | [[Any type: allowed]](# "Additional Properties of any type are allowed.") | + +**Description:** Which Windows signal to use when hiding windows (default: minimize) + +| Any of(Option) | +| ---------------------------------------------------- | +| [HidingBehaviour](#window_hiding_behaviour_anyOf_i0) | +| [item 1](#window_hiding_behaviour_anyOf_i1) | + +### 27.1. Property `StaticConfig > window_hiding_behaviour > anyOf > HidingBehaviour` + +| | | +| ------------------------- | ------------------------------------------------------------------------- | +| **Type** | `combining` | +| **Required** | No | +| **Additional properties** | [[Any type: allowed]](# "Additional Properties of any type are allowed.") | +| **Defined in** | #/definitions/HidingBehaviour | + +| One of(Option) | +| ---------------------------------------------------- | +| [item 0](#window_hiding_behaviour_anyOf_i0_oneOf_i0) | +| [item 1](#window_hiding_behaviour_anyOf_i0_oneOf_i1) | +| [item 2](#window_hiding_behaviour_anyOf_i0_oneOf_i2) | + +#### 27.1.1. Property `StaticConfig > window_hiding_behaviour > anyOf > item 0 > oneOf > item 0` + +| | | +| ------------ | ------------------ | +| **Type** | `enum (of string)` | +| **Required** | No | + +**Description:** Use the SW_HIDE flag to hide windows when switching workspaces (has issues with Electron apps) + +Must be one of: +* "Hide" + +#### 27.1.2. Property `StaticConfig > window_hiding_behaviour > anyOf > item 0 > oneOf > item 1` + +| | | +| ------------ | ------------------ | +| **Type** | `enum (of string)` | +| **Required** | No | + +**Description:** Use the SW_MINIMIZE flag to hide windows when switching workspaces (has issues with frequent workspace switching) + +Must be one of: +* "Minimize" + +#### 27.1.3. Property `StaticConfig > window_hiding_behaviour > anyOf > item 0 > oneOf > item 2` + +| | | +| ------------ | ------------------ | +| **Type** | `enum (of string)` | +| **Required** | No | + +**Description:** Use the undocumented SetCloak Win32 function to hide windows when switching workspaces (has foregrounding issues) + +Must be one of: +* "Cloak" + +### 27.2. Property `StaticConfig > window_hiding_behaviour > anyOf > item 1` + +| | | +| ------------ | ------ | +| **Type** | `null` | +| **Required** | No | + +---------------------------------------------------------------------------------------------------------------------------- +Generated using [json-schema-for-humans](https://github.com/coveooss/json-schema-for-humans) on 2023-11-12 at 14:10:31 -0800