mirror of
https://github.com/LGUG2Z/komorebi.git
synced 2026-04-10 11:13:57 +02:00
feat(wm): add layout_options with ratios support
Added customizable split ratios for layouts via layout_options configuration. Users can now specify column_ratios and row_ratios arrays to control window sizing in various layouts. Ratios are validated at config load time: values are clamped between 0.1 and 0.9 to prevent zero-sized windows, and arrays are automatically truncated when their cumulative sum would reach or exceed 1.0. This ensures there's always remaining space for additional windows. Ratio support varies by layout: - Columns and Rows layouts use the full arrays for each column/row width or height - VerticalStack, RightMainVerticalStack, and HorizontalStack use the first ratio for the primary split and the remaining ratios for stack windows - BSP uses the first value from each array for horizontal and vertical splits respectively - Grid only supports column_ratios since row counts vary dynamically. - UltrawideVerticalStack uses the first two column ratios for center and left columns. All ratio-related values are now defined as constants in default_layout.rs: MAX_RATIOS (5), MIN_RATIO (0.1), MAX_RATIO (0.9), DEFAULT_RATIO (0.5), and DEFAULT_SECONDARY_RATIO (0.25 for UltrawideVerticalStack).
This commit is contained in:
@@ -59,7 +59,7 @@
|
||||
"null"
|
||||
],
|
||||
"format": "float",
|
||||
"default": 50.0
|
||||
"default": 50
|
||||
},
|
||||
"icon_scale": {
|
||||
"description": "Scale of the icons relative to the font_size [[1.0-2.0]]",
|
||||
@@ -68,7 +68,7 @@
|
||||
"null"
|
||||
],
|
||||
"format": "float",
|
||||
"default": 1.399999976158142
|
||||
"default": 1.4
|
||||
},
|
||||
"left_widgets": {
|
||||
"description": "Left side widgets (ordered left-to-right)",
|
||||
@@ -99,7 +99,15 @@
|
||||
},
|
||||
"monitor": {
|
||||
"description": "The monitor index or the full monitor options",
|
||||
"$ref": "#/$defs/MonitorConfigOrIndex"
|
||||
"anyOf": [
|
||||
{
|
||||
"$ref": "#/$defs/MonitorConfigOrIndex"
|
||||
},
|
||||
{
|
||||
"type": "null"
|
||||
}
|
||||
],
|
||||
"default": 0
|
||||
},
|
||||
"mouse": {
|
||||
"description": "Options for mouse interaction on the bar",
|
||||
@@ -174,7 +182,6 @@
|
||||
}
|
||||
},
|
||||
"required": [
|
||||
"monitor",
|
||||
"left_widgets",
|
||||
"right_widgets"
|
||||
],
|
||||
|
||||
Reference in New Issue
Block a user