Load custom layouts from file #42

Closed
opened 2026-01-05 14:47:53 +01:00 by adam · 2 comments
Owner

Originally created by @LGUG2Z on GitHub (Oct 18, 2021).

Originally assigned to: @LGUG2Z on GitHub.

The default layouts do not always provide for a nice experience on ultrawide monitors and allowing custom layouts to be defined and loaded on the fly would be a big improvement in this area.

Originally created by @LGUG2Z on GitHub (Oct 18, 2021). Originally assigned to: @LGUG2Z on GitHub. The default layouts do not always provide for a nice experience on ultrawide monitors and allowing custom layouts to be defined and loaded on the fly would be a big improvement in this area.
adam added the enhancement label 2026-01-05 14:47:53 +01:00
adam closed this issue 2026-01-05 14:47:53 +01:00
Author
Owner

@LGUG2Z commented on GitHub (Oct 18, 2021):

Work on this issue has been started here: https://github.com/LGUG2Z/komorebi/tree/feature/custom-layouts

  • The column is the basic building block of custom layouts
  • Vertical splits in custom layouts can be arranged but not navigated, so vertical splits are disabled for now (fixing this should probably be in scope for this issue)
  • Resizing support is not in scope for this issue (may be worked on in a separate issue when/if there is a user request)
  • Layout flipping support is not in scope for this issue (may be worked on in a separate issue when/if there is a user request)

Anyone can now build from this branch and load custom layouts with the komorebic load-layout layout-file.json command. The complete schema for custom layout definition is here and the validation rules are here.

Example of a valid custom layout JSON file:

[
  {
    "column": "Secondary",
    "configuration": {
      "Horizontal": 3
    }
  },
  {
    "column": "Primary"
  },
  {
    "column": "Tertiary",
    "configuration": "Horizontal"
  }
]
@LGUG2Z commented on GitHub (Oct 18, 2021): Work on this issue has been started here: https://github.com/LGUG2Z/komorebi/tree/feature/custom-layouts - The column is the basic building block of custom layouts - Vertical splits in custom layouts can be arranged but not navigated, so vertical splits are disabled for now (fixing this should probably be in scope for this issue) - Resizing support is not in scope for this issue (may be worked on in a separate issue when/if there is a user request) - Layout flipping support is not in scope for this issue (may be worked on in a separate issue when/if there is a user request) Anyone can now build from this branch and load custom layouts with the `komorebic load-layout layout-file.json` command. The complete schema for custom layout definition is [here](https://github.com/LGUG2Z/komorebi/blob/b3e6a8206c02ee0846c97b15d1d2901fece28b98/komorebi-core/src/custom_layout.rs#L163) and the validation rules are [here](https://github.com/LGUG2Z/komorebi/blob/feature/custom-layouts/komorebi-core/src/custom_layout.rs#L40). Example of a valid custom layout JSON file: ```json [ { "column": "Secondary", "configuration": { "Horizontal": 3 } }, { "column": "Primary" }, { "column": "Tertiary", "configuration": "Horizontal" } ] ```
Author
Owner

@LGUG2Z commented on GitHub (Oct 19, 2021):

Support for YAML files has also been added, example:

- column: Secondary
  configuration:
    Horizontal: 2
- column: Primary
  configuration:
    WidthPercentage: 50
- column: Tertiary
  configuration: Horizontal
@LGUG2Z commented on GitHub (Oct 19, 2021): Support for YAML files has also been added, example: ```yaml - column: Secondary configuration: Horizontal: 2 - column: Primary configuration: WidthPercentage: 50 - column: Tertiary configuration: Horizontal ```
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: starred/komorebi#42