feat(cli): new layout-ratios command

The implementation adds a new layout-ratio CLI command to komorebi that
allows users to dynamically set column and row ratios for layouts at
runtime via komorebic layout-ratio --columns 0.3 0.4 --rows 0.5.

A public validate_ratios function was added to komorebi-layouts that
clamps ratio values between 0.1 and 0.9, truncates when the cumulative
sum would reach or exceed 1.0, and limits to a maximum of 5 ratios. This
function is shared between config file deserialization and the new CLI
command, ensuring consistent validation behavior.

The SocketMessage enum in komorebi/src/core/mod.rs has a new
LayoutRatios variant. The handler in process_command.rs uses the shared
validate_ratios function to process the ratios before applying them to
the focused workspace's layout options.

When the CLI command is called without any arguments, it prints a
helpful message instead of returning an error.
This commit is contained in:
Csaba
2026-02-10 23:25:29 +01:00
committed by LGUG2Z
parent 9977cca500
commit c165172b5a
6 changed files with 118 additions and 24 deletions
+40
View File
@@ -5417,6 +5417,46 @@
"content"
]
},
{
"type": "object",
"properties": {
"content": {
"type": "array",
"maxItems": 2,
"minItems": 2,
"prefixItems": [
{
"type": [
"array",
"null"
],
"items": {
"type": "number",
"format": "float"
}
},
{
"type": [
"array",
"null"
],
"items": {
"type": "number",
"format": "float"
}
}
]
},
"type": {
"type": "string",
"const": "LayoutRatios"
}
},
"required": [
"type",
"content"
]
},
{
"type": "object",
"properties": {