mirror of
https://github.com/LGUG2Z/komorebi.git
synced 2026-11-14 12:53:43 +01:00
The daemon takes its settings from a komorebi.json: the file --config names, or the one in the config home ($KOMOREBI_CONFIG_HOME, else ~/.config/komorebi). Without a file it runs on its defaults, as before. StaticConfig reads the file in three steps, because the monitors are known only after the backend has been asked. preload makes the window manager and applies the settings that are process-wide, postload gives each monitor and workspace the entry of its place (by the index display_index_preferences gives a monitor's serial number id, else in order), and main asks KWin for a desktop for each workspace the file lists. A watcher on the file sends the daemon a ReloadStaticConfiguration about two seconds after it changes, whether an editor wrote the file in place or renamed a new one over it, and a file that does not parse changes nothing. A workspace can change its layout, its work area offset and its layout options with the number of its containers, from the file or with komorebic (workspace-layout-rule, its named form and the two that clear), and layout_defaults gives every workspace of a layout the options it sets none of. One file is meant to serve every platform, so a key that does nothing on Plasma is accepted and ignored. config_parity checks the example and the files of other platforms; the keys of features that are not in yet are listed there, and the test fails when a list names a key that is read. The file also sets what the stacks, the float override, the floating layer and monocle set while the daemon runs: window_container_behaviour, with its rules by container count in a workspace, float_override, float_override_placement, floating_layer_behaviour (for a monitor and a workspace too), floating_layer_placement and monocle_focus_behaviour. Their features come before this commit, but a file to put the keys in does not, so they are part of this one. komorebic gains configuration, generate-static-config and start --config. The NixOS module gets configFile, which the unit gives the daemon as --config.
50 lines
1002 B
JSON
50 lines
1002 B
JSON
{
|
|
"cross_monitor_move_behaviour": "Insert",
|
|
"default_workspace_padding": 15,
|
|
"default_container_padding": 15,
|
|
"floating_window_aspect_ratio": "Widescreen",
|
|
"floating_layer_behaviour": "Float",
|
|
"resize_delta": 100,
|
|
"ignore_rules": [],
|
|
"floating_applications": [],
|
|
"manage_rules": [],
|
|
"monitors": [
|
|
{
|
|
"workspaces": [
|
|
{
|
|
"name": "I",
|
|
"layout": "BSP"
|
|
},
|
|
{
|
|
"name": "II",
|
|
"layout": "VerticalStack"
|
|
},
|
|
{
|
|
"name": "III",
|
|
"layout": "HorizontalStack"
|
|
},
|
|
{
|
|
"name": "IV",
|
|
"layout": "UltrawideVerticalStack"
|
|
},
|
|
{
|
|
"name": "V",
|
|
"layout": "Rows"
|
|
},
|
|
{
|
|
"name": "VI",
|
|
"layout": "Grid"
|
|
},
|
|
{
|
|
"name": "VII",
|
|
"layout": "RightMainVerticalStack"
|
|
},
|
|
{
|
|
"name": "VIII",
|
|
"layout": "Scrolling"
|
|
}
|
|
]
|
|
}
|
|
]
|
|
}
|