{ "$schema": "https://json-schema.org/draft/2020-12/schema", "title": "StaticConfig", "description": "The `komorebi.json` static configuration file reference for `v0.1.40`", "type": "object", "properties": { "animation": { "description": "Animations configuration options", "anyOf": [ { "$ref": "#/$defs/AnimationsConfig" }, { "type": "null" } ] }, "app_specific_configuration_path": { "description": "Path to applications.json from komorebi-application-specific-configurations", "anyOf": [ { "$ref": "#/$defs/AppSpecificConfigurationPath" }, { "type": "null" } ] }, "bar_configurations": { "description": "Komorebi status bar configuration files for multiple instances on different monitors", "type": [ "array", "null" ], "items": { "$ref": "#/$defs/PathBuf" } }, "border": { "description": "Display window borders", "type": [ "boolean", "null" ], "default": true }, "border_colours": { "description": "Window border colours for different container types (has no effect if [`theme`] is defined)", "anyOf": [ { "$ref": "#/$defs/BorderColours" }, { "type": "null" } ] }, "border_implementation": { "description": "Window border implementation", "anyOf": [ { "$ref": "#/$defs/BorderImplementation" }, { "type": "null" } ], "default": "Komorebi" }, "border_offset": { "description": "Offset of window borders", "type": [ "integer", "null" ], "format": "int32", "default": -1 }, "border_overflow_applications": { "description": "Identify border overflow applications", "type": [ "array", "null" ], "items": { "$ref": "#/$defs/MatchingRule" } }, "border_style": { "description": "Window border style", "anyOf": [ { "$ref": "#/$defs/BorderStyle" }, { "type": "null" } ], "default": "System" }, "border_width": { "description": "Width of window borders", "type": [ "integer", "null" ], "format": "int32", "default": 8 }, "border_z_order": { "description": "DEPRECATED from v0.1.31: no longer required", "anyOf": [ { "$ref": "#/$defs/ZOrder" }, { "type": "null" } ], "deprecated": true }, "cross_boundary_behaviour": { "description": "Determine what happens when an action is called on a window at a monitor boundary", "anyOf": [ { "$ref": "#/$defs/CrossBoundaryBehaviour" }, { "type": "null" } ], "default": "Monitor" }, "cross_monitor_move_behaviour": { "description": "Determine what happens when a window is moved across a monitor boundary", "anyOf": [ { "$ref": "#/$defs/MoveBehaviour" }, { "type": "null" } ], "default": "Swap" }, "default_container_padding": { "description": "Global default container padding", "type": [ "integer", "null" ], "format": "int32", "default": 10 }, "default_workspace_padding": { "description": "Global default workspace padding", "type": [ "integer", "null" ], "format": "int32", "default": 10 }, "display_index_preferences": { "description": "Set display index preferences", "type": [ "object", "null" ], "additionalProperties": false, "patternProperties": { "^\\d+$": { "type": "string" } } }, "float_override": { "description": "Enable or disable float override, which makes it so every new window opens in floating mode", "type": [ "boolean", "null" ], "default": false }, "float_override_placement": { "description": "Determines the `Placement` to be used when spawning a window with float override active", "anyOf": [ { "$ref": "#/$defs/Placement" }, { "type": "null" } ] }, "float_rule_placement": { "description": "Determines the `Placement` to be used when spawning a window that matches a\n`floating_applications` rule", "anyOf": [ { "$ref": "#/$defs/Placement" }, { "type": "null" } ] }, "floating_applications": { "description": "Identify applications which should be managed as floating windows", "type": [ "array", "null" ], "items": { "$ref": "#/$defs/MatchingRule" } }, "floating_layer_behaviour": { "description": "Determines what happens on a new window when on the `FloatingLayer`", "anyOf": [ { "$ref": "#/$defs/FloatingLayerBehaviour" }, { "type": "null" } ], "default": "Tile" }, "floating_layer_placement": { "description": "Determines the `Placement` to be used when spawning a window on the floating layer with the\n`FloatingLayerBehaviour` set to `FloatingLayerBehaviour::Float`", "anyOf": [ { "$ref": "#/$defs/Placement" }, { "type": "null" } ], "default": "Center" }, "floating_window_aspect_ratio": { "description": "Aspect ratio to resize with when toggling floating mode for a window", "anyOf": [ { "$ref": "#/$defs/AspectRatio" }, { "type": "null" } ] }, "focus_follows_mouse": { "description": "END OF LIFE FEATURE: Use https://github.com/LGUG2Z/masir instead", "anyOf": [ { "$ref": "#/$defs/FocusFollowsMouseImplementation" }, { "type": "null" } ], "deprecated": true }, "global_work_area_offset": { "description": "Global work area (space used for tiling) offset", "anyOf": [ { "$ref": "#/$defs/Rect" }, { "type": "null" } ] }, "ignore_rules": { "description": "Individual window floating rules", "type": [ "array", "null" ], "items": { "$ref": "#/$defs/MatchingRule" } }, "invisible_borders": { "description": "DEPRECATED from v0.1.22: no longer required", "anyOf": [ { "$ref": "#/$defs/Rect" }, { "type": "null" } ], "deprecated": true }, "layered_applications": { "description": "Identify applications that have the `WS_EX_LAYERED` extended window style", "type": [ "array", "null" ], "items": { "$ref": "#/$defs/MatchingRule" } }, "manage_rules": { "description": "Individual window force-manage rules", "type": [ "array", "null" ], "items": { "$ref": "#/$defs/MatchingRule" } }, "minimum_window_height": { "description": "DISCOURAGED: Minimum height for a window to be eligible for tiling", "type": [ "integer", "null" ], "format": "int32" }, "minimum_window_width": { "description": "DISCOURAGED: Minimum width for a window to be eligible for tiling", "type": [ "integer", "null" ], "format": "int32" }, "monitor_index_preferences": { "description": "Set monitor index preferences", "type": [ "object", "null" ], "additionalProperties": false, "patternProperties": { "^\\d+$": { "$ref": "#/$defs/Rect" } } }, "monitors": { "description": "Monitor and workspace configurations", "type": [ "array", "null" ], "items": { "$ref": "#/$defs/MonitorConfig" } }, "mouse_follows_focus": { "description": "Enable or disable mouse follows focus", "type": [ "boolean", "null" ], "default": true }, "object_name_change_applications": { "description": "Identify applications that send `EVENT_OBJECT_NAMECHANGE` on launch (very rare)", "type": [ "array", "null" ], "items": { "$ref": "#/$defs/MatchingRule" } }, "object_name_change_title_ignore_list": { "description": "Do not process `EVENT_OBJECT_NAMECHANGE` events as Show events for identified applications matching these title regexes", "type": [ "array", "null" ], "items": { "type": "string" } }, "remove_titlebar_applications": { "description": "HEAVILY DISCOURAGED: Identify applications for which komorebi should forcibly remove title bars", "type": [ "array", "null" ], "items": { "$ref": "#/$defs/MatchingRule" } }, "resize_delta": { "description": "Delta to resize windows by", "type": [ "integer", "null" ], "format": "int32", "default": 50 }, "slow_application_compensation_time": { "description": "How long to wait when compensating for slow applications, in milliseconds", "type": [ "integer", "null" ], "format": "uint64", "default": 20, "minimum": 0 }, "slow_application_identifiers": { "description": "Identify applications which are slow to send initial event notifications", "type": [ "array", "null" ], "items": { "$ref": "#/$defs/MatchingRule" } }, "stackbar": { "description": "Stackbar configuration options", "anyOf": [ { "$ref": "#/$defs/StackbarConfig" }, { "type": "null" } ] }, "theme": { "description": "Theme configuration options\n\nIf a theme is specified, `border_colours` will have no effect", "anyOf": [ { "$ref": "#/$defs/KomorebiTheme" }, { "type": "null" } ] }, "toggle_float_placement": { "description": "Determines the placement of a new window when toggling to float", "anyOf": [ { "$ref": "#/$defs/Placement" }, { "type": "null" } ], "default": "CenterAndResize" }, "transparency": { "description": "Add transparency to unfocused windows", "type": [ "boolean", "null" ], "default": false }, "transparency_alpha": { "description": "Alpha value for unfocused window transparency [[0-255]]", "type": [ "integer", "null" ], "format": "uint8", "default": 200, "maximum": 255, "minimum": 0 }, "transparency_ignore_rules": { "description": "Individual window transparency ignore rules", "type": [ "array", "null" ], "items": { "$ref": "#/$defs/MatchingRule" } }, "tray_and_multi_window_applications": { "description": "Identify tray and multi-window applications", "type": [ "array", "null" ], "items": { "$ref": "#/$defs/MatchingRule" } }, "unmanaged_window_operation_behaviour": { "description": "Determine what happens when commands are sent while an unmanaged window is in the foreground", "anyOf": [ { "$ref": "#/$defs/OperationBehaviour" }, { "type": "null" } ], "default": "Op" }, "window_container_behaviour": { "description": "Determine what happens when a new window is opened", "anyOf": [ { "$ref": "#/$defs/WindowContainerBehaviour" }, { "type": "null" } ], "default": "Create" }, "window_handling_behaviour": { "description": "Which Windows API behaviour to use when manipulating windows", "anyOf": [ { "$ref": "#/$defs/WindowHandlingBehaviour" }, { "type": "null" } ], "default": "Sync" }, "window_hiding_behaviour": { "description": "Which Windows signal to use when hiding windows", "anyOf": [ { "$ref": "#/$defs/HidingBehaviour" }, { "type": "null" } ], "default": "Cloak" } }, "$defs": { "AnimationStyle": { "description": "Mathematical function which describes the rate at which a value changes", "oneOf": [ { "description": "Linear", "type": "string", "const": "Linear" }, { "description": "Ease in sine", "type": "string", "const": "EaseInSine" }, { "description": "Ease out sine", "type": "string", "const": "EaseOutSine" }, { "description": "Ease in out sine", "type": "string", "const": "EaseInOutSine" }, { "description": "Ease in quad", "type": "string", "const": "EaseInQuad" }, { "description": "Ease out quad", "type": "string", "const": "EaseOutQuad" }, { "description": "Ease in out quad", "type": "string", "const": "EaseInOutQuad" }, { "description": "Ease in cubic", "type": "string", "const": "EaseInCubic" }, { "description": "Ease out cubic", "type": "string", "const": "EaseOutCubic" }, { "description": "Ease in out cubic", "type": "string", "const": "EaseInOutCubic" }, { "description": "Ease in quart", "type": "string", "const": "EaseInQuart" }, { "description": "Ease out quart", "type": "string", "const": "EaseOutQuart" }, { "description": "Ease in out quart", "type": "string", "const": "EaseInOutQuart" }, { "description": "Ease in quint", "type": "string", "const": "EaseInQuint" }, { "description": "Ease out quint", "type": "string", "const": "EaseOutQuint" }, { "description": "Ease in out quint", "type": "string", "const": "EaseInOutQuint" }, { "description": "Ease in expo", "type": "string", "const": "EaseInExpo" }, { "description": "Ease out expo", "type": "string", "const": "EaseOutExpo" }, { "description": "Ease in out expo", "type": "string", "const": "EaseInOutExpo" }, { "description": "Ease in circ", "type": "string", "const": "EaseInCirc" }, { "description": "Ease out circ", "type": "string", "const": "EaseOutCirc" }, { "description": "Ease in out circ", "type": "string", "const": "EaseInOutCirc" }, { "description": "Ease in back", "type": "string", "const": "EaseInBack" }, { "description": "Ease out back", "type": "string", "const": "EaseOutBack" }, { "description": "Ease in out back", "type": "string", "const": "EaseInOutBack" }, { "description": "Ease in elastic", "type": "string", "const": "EaseInElastic" }, { "description": "Ease out elastic", "type": "string", "const": "EaseOutElastic" }, { "description": "Ease in out elastic", "type": "string", "const": "EaseInOutElastic" }, { "description": "Ease in bounce", "type": "string", "const": "EaseInBounce" }, { "description": "Ease out bounce", "type": "string", "const": "EaseOutBounce" }, { "description": "Ease in out bounce", "type": "string", "const": "EaseInOutBounce" }, { "description": "Custom Cubic Bézier function", "type": "object", "properties": { "CubicBezier": { "type": "array", "maxItems": 4, "minItems": 4, "prefixItems": [ { "type": "number", "format": "double" }, { "type": "number", "format": "double" }, { "type": "number", "format": "double" }, { "type": "number", "format": "double" } ] } }, "additionalProperties": false, "required": [ "CubicBezier" ] } ] }, "AnimationsConfig": { "description": "Animations configuration options", "type": "object", "properties": { "duration": { "description": "Set the animation duration in ms", "anyOf": [ { "$ref": "#/$defs/PerAnimationPrefixConfig2" }, { "type": "null" } ] }, "enabled": { "description": "Enable or disable animations", "$ref": "#/$defs/PerAnimationPrefixConfig" }, "fps": { "description": "Set the animation FPS", "type": [ "integer", "null" ], "format": "uint64", "default": 60, "minimum": 0 }, "style": { "description": "Set the animation style", "anyOf": [ { "$ref": "#/$defs/PerAnimationPrefixConfig3" }, { "type": "null" } ] } }, "required": [ "enabled" ] }, "AppSpecificConfigurationPath": { "description": "Path(s) to application-specific configuration file(s)", "anyOf": [ { "description": "A single `applications.json` file", "$ref": "#/$defs/PathBuf" }, { "description": "Multiple `applications.json` files", "type": "array", "items": { "$ref": "#/$defs/PathBuf" } } ] }, "ApplicationIdentifier": { "description": "Application identifier", "oneOf": [ { "description": "Executable name", "type": "string", "const": "Exe" }, { "description": "Class", "type": "string", "const": "Class" }, { "description": "Window title", "type": "string", "const": "Title" }, { "description": "Executable path", "type": "string", "const": "Path" } ] }, "AspectRatio": { "description": "Aspect ratio for temporarily floating windows", "anyOf": [ { "description": "Predefined aspect ratio", "$ref": "#/$defs/PredefinedAspectRatio" }, { "description": "Custom W:H aspect ratio", "type": "array", "maxItems": 2, "minItems": 2, "prefixItems": [ { "type": "integer", "format": "int32" }, { "type": "integer", "format": "int32" } ] } ] }, "Axis": { "description": "Axis on which to perform an operation", "oneOf": [ { "description": "Horizontal axis", "type": "string", "const": "Horizontal" }, { "description": "Vertical axis", "type": "string", "const": "Vertical" }, { "description": "Both horizontal and vertical axes", "type": "string", "const": "HorizontalAndVertical" } ] }, "Base16": { "type": "string", "enum": [ "3024", "Apathy", "Apprentice", "Ashes", "AtelierCaveLight", "AtelierCave", "AtelierDuneLight", "AtelierDune", "AtelierEstuaryLight", "AtelierEstuary", "AtelierForestLight", "AtelierForest", "AtelierHeathLight", "AtelierHeath", "AtelierLakesideLight", "AtelierLakeside", "AtelierPlateauLight", "AtelierPlateau", "AtelierSavannaLight", "AtelierSavanna", "AtelierSeasideLight", "AtelierSeaside", "AtelierSulphurpoolLight", "AtelierSulphurpool", "Atlas", "AyuDark", "AyuLight", "AyuMirage", "Aztec", "Bespin", "BlackMetalBathory", "BlackMetalBurzum", "BlackMetalDarkFuneral", "BlackMetalGorgoroth", "BlackMetalImmortal", "BlackMetalKhold", "BlackMetalMarduk", "BlackMetalMayhem", "BlackMetalNile", "BlackMetalVenom", "BlackMetal", "Blueforest", "Blueish", "Brewer", "Bright", "Brogrammer", "BrushtreesDark", "Brushtrees", "Caroline", "CatppuccinFrappe", "CatppuccinLatte", "CatppuccinMacchiato", "CatppuccinMocha", "Chalk", "Circus", "ClassicDark", "ClassicLight", "Codeschool", "Colors", "Cupcake", "Cupertino", "DaOneBlack", "DaOneGray", "DaOneOcean", "DaOnePaper", "DaOneSea", "DaOneWhite", "DanqingLight", "Danqing", "Darcula", "Darkmoss", "Darktooth", "Darkviolet", "Decaf", "DefaultDark", "DefaultLight", "Dirtysea", "Dracula", "EdgeDark", "EdgeLight", "Eighties", "EmbersLight", "Embers", "Emil", "EquilibriumDark", "EquilibriumGrayDark", "EquilibriumGrayLight", "EquilibriumLight", "Eris", "Espresso", "EvaDim", "Eva", "EvenokDark", "EverforestDarkHard", "Everforest", "Flat", "Framer", "FruitSoda", "Gigavolt", "Github", "GoogleDark", "GoogleLight", "Gotham", "GrayscaleDark", "GrayscaleLight", "Greenscreen", "Gruber", "GruvboxDarkHard", "GruvboxDarkMedium", "GruvboxDarkPale", "GruvboxDarkSoft", "GruvboxLightHard", "GruvboxLightMedium", "GruvboxLightSoft", "GruvboxMaterialDarkHard", "GruvboxMaterialDarkMedium", "GruvboxMaterialDarkSoft", "GruvboxMaterialLightHard", "GruvboxMaterialLightMedium", "GruvboxMaterialLightSoft", "Hardcore", "Harmonic16Dark", "Harmonic16Light", "HeetchLight", "Heetch", "Helios", "Hopscotch", "HorizonDark", "HorizonLight", "HorizonTerminalDark", "HorizonTerminalLight", "HumanoidDark", "HumanoidLight", "IaDark", "IaLight", "Icy", "Irblack", "Isotope", "Jabuti", "Kanagawa", "Katy", "Kimber", "Lime", "Macintosh", "Marrakesh", "Materia", "MaterialDarker", "MaterialLighter", "MaterialPalenight", "MaterialVivid", "Material", "MeasuredDark", "MeasuredLight", "MellowPurple", "MexicoLight", "Mocha", "Monokai", "Moonlight", "Mountain", "Nebula", "NordLight", "Nord", "Nova", "Ocean", "Oceanicnext", "OneLight", "OnedarkDark", "Onedark", "OutrunDark", "OxocarbonDark", "OxocarbonLight", "Pandora", "PapercolorDark", "PapercolorLight", "Paraiso", "Pasque", "Phd", "Pico", "Pinky", "Pop", "Porple", "PreciousDarkEleven", "PreciousDarkFifteen", "PreciousLightWarm", "PreciousLightWhite", "PrimerDarkDimmed", "PrimerDark", "PrimerLight", "Purpledream", "Qualia", "Railscasts", "Rebecca", "RosePineDawn", "RosePineMoon", "RosePine", "Saga", "Sagelight", "Sakura", "Sandcastle", "SelenizedBlack", "SelenizedDark", "SelenizedLight", "SelenizedWhite", "Seti", "ShadesOfPurple", "ShadesmearDark", "ShadesmearLight", "Shapeshifter", "SilkDark", "SilkLight", "Snazzy", "SolarflareLight", "Solarflare", "SolarizedDark", "SolarizedLight", "Spaceduck", "Spacemacs", "Sparky", "StandardizedDark", "StandardizedLight", "Stella", "StillAlive", "Summercamp", "SummerfruitDark", "SummerfruitLight", "SynthMidnightDark", "SynthMidnightLight", "Tango", "Tarot", "Tender", "TerracottaDark", "Terracotta", "TokyoCityDark", "TokyoCityLight", "TokyoCityTerminalDark", "TokyoCityTerminalLight", "TokyoNightDark", "TokyoNightLight", "TokyoNightMoon", "TokyoNightStorm", "TokyoNightTerminalDark", "TokyoNightTerminalLight", "TokyoNightTerminalStorm", "TokyodarkTerminal", "Tokyodark", "TomorrowNightEighties", "TomorrowNight", "Tomorrow", "Tube", "Twilight", "UnikittyDark", "UnikittyLight", "UnikittyReversible", "Uwunicorn", "Vesper", "Vice", "Vulcan", "Windows10Light", "Windows10", "Windows95Light", "Windows95", "WindowsHighcontrastLight", "WindowsHighcontrast", "WindowsNtLight", "WindowsNt", "Woodland", "XcodeDusk", "Zenbones", "Zenburn" ] }, "Base16ColourPalette": { "description": "Base16 colour palette: https://github.com/chriskempson/base16", "type": "object", "properties": { "base_00": { "description": "Base00", "$ref": "#/$defs/Colour" }, "base_01": { "description": "Base01", "$ref": "#/$defs/Colour" }, "base_02": { "description": "Base02", "$ref": "#/$defs/Colour" }, "base_03": { "description": "Base03", "$ref": "#/$defs/Colour" }, "base_04": { "description": "Base04", "$ref": "#/$defs/Colour" }, "base_05": { "description": "Base05", "$ref": "#/$defs/Colour" }, "base_06": { "description": "Base06", "$ref": "#/$defs/Colour" }, "base_07": { "description": "Base07", "$ref": "#/$defs/Colour" }, "base_08": { "description": "Base08", "$ref": "#/$defs/Colour" }, "base_09": { "description": "Base09", "$ref": "#/$defs/Colour" }, "base_0a": { "description": "Base0A", "$ref": "#/$defs/Colour" }, "base_0b": { "description": "Base0B", "$ref": "#/$defs/Colour" }, "base_0c": { "description": "Base0C", "$ref": "#/$defs/Colour" }, "base_0d": { "description": "Base0D", "$ref": "#/$defs/Colour" }, "base_0e": { "description": "Base0E", "$ref": "#/$defs/Colour" }, "base_0f": { "description": "Base0F", "$ref": "#/$defs/Colour" } }, "required": [ "base_00", "base_01", "base_02", "base_03", "base_04", "base_05", "base_06", "base_07", "base_08", "base_09", "base_0a", "base_0b", "base_0c", "base_0d", "base_0e", "base_0f" ] }, "Base16Value": { "description": "Base16 value", "oneOf": [ { "description": "Base00", "type": "string", "const": "Base00" }, { "description": "Base01", "type": "string", "const": "Base01" }, { "description": "Base02", "type": "string", "const": "Base02" }, { "description": "Base03", "type": "string", "const": "Base03" }, { "description": "Base04", "type": "string", "const": "Base04" }, { "description": "Base05", "type": "string", "const": "Base05" }, { "description": "Base06", "type": "string", "const": "Base06" }, { "description": "Base07", "type": "string", "const": "Base07" }, { "description": "Base08", "type": "string", "const": "Base08" }, { "description": "Base09", "type": "string", "const": "Base09" }, { "description": "Base0A", "type": "string", "const": "Base0A" }, { "description": "Base0B", "type": "string", "const": "Base0B" }, { "description": "Base0C", "type": "string", "const": "Base0C" }, { "description": "Base0D", "type": "string", "const": "Base0D" }, { "description": "Base0E", "type": "string", "const": "Base0E" }, { "description": "Base0F", "type": "string", "const": "Base0F" } ] }, "BorderColours": { "description": "Border colours for different container states", "type": "object", "properties": { "floating": { "description": "Border colour when the container is in floating mode", "anyOf": [ { "$ref": "#/$defs/Colour" }, { "type": "null" } ] }, "monocle": { "description": "Border colour when the container is in monocle mode", "anyOf": [ { "$ref": "#/$defs/Colour" }, { "type": "null" } ] }, "single": { "description": "Border colour when the container contains a single window", "anyOf": [ { "$ref": "#/$defs/Colour" }, { "type": "null" } ] }, "stack": { "description": "Border colour when the container contains multiple windows", "anyOf": [ { "$ref": "#/$defs/Colour" }, { "type": "null" } ] }, "unfocused": { "description": "Border colour when the container is unfocused", "anyOf": [ { "$ref": "#/$defs/Colour" }, { "type": "null" } ] }, "unfocused_locked": { "description": "Border colour when the container is unfocused and locked", "anyOf": [ { "$ref": "#/$defs/Colour" }, { "type": "null" } ] } } }, "BorderImplementation": { "description": "Border style", "oneOf": [ { "description": "Use the adjustable komorebi border implementation", "type": "string", "const": "Komorebi" }, { "description": "Use the thin Windows accent border implementation", "type": "string", "const": "Windows" } ] }, "BorderStyle": { "description": "Border style", "oneOf": [ { "description": "Use the system border style", "type": "string", "const": "System" }, { "description": "Use the Windows 11-style rounded borders", "type": "string", "const": "Rounded" }, { "description": "Use the Windows 10-style square borders", "type": "string", "const": "Square" } ] }, "Catppuccin": { "description": "Catppuccin palette", "oneOf": [ { "description": "Frappe", "type": "string", "const": "Frappe" }, { "description": "Latte", "type": "string", "const": "Latte" }, { "description": "Macchiato", "type": "string", "const": "Macchiato" }, { "description": "Mocha", "type": "string", "const": "Mocha" } ] }, "CatppuccinValue": { "description": "Catppuccin Value", "oneOf": [ { "description": "Rosewater", "type": "string", "const": "Rosewater" }, { "description": "Flamingo", "type": "string", "const": "Flamingo" }, { "description": "Pink", "type": "string", "const": "Pink" }, { "description": "Mauve", "type": "string", "const": "Mauve" }, { "description": "Red", "type": "string", "const": "Red" }, { "description": "Maroon", "type": "string", "const": "Maroon" }, { "description": "Peach", "type": "string", "const": "Peach" }, { "description": "Yellow", "type": "string", "const": "Yellow" }, { "description": "Green", "type": "string", "const": "Green" }, { "description": "Teal", "type": "string", "const": "Teal" }, { "description": "Sky", "type": "string", "const": "Sky" }, { "description": "Sapphire", "type": "string", "const": "Sapphire" }, { "description": "Blue", "type": "string", "const": "Blue" }, { "description": "Lavender", "type": "string", "const": "Lavender" }, { "description": "Text", "type": "string", "const": "Text" }, { "description": "Subtext1", "type": "string", "const": "Subtext1" }, { "description": "Subtext0", "type": "string", "const": "Subtext0" }, { "description": "Overlay2", "type": "string", "const": "Overlay2" }, { "description": "Overlay1", "type": "string", "const": "Overlay1" }, { "description": "Overlay0", "type": "string", "const": "Overlay0" }, { "description": "Surface2", "type": "string", "const": "Surface2" }, { "description": "Surface1", "type": "string", "const": "Surface1" }, { "description": "Surface0", "type": "string", "const": "Surface0" }, { "description": "Base", "type": "string", "const": "Base" }, { "description": "Mantle", "type": "string", "const": "Mantle" }, { "description": "Crust", "type": "string", "const": "Crust" } ] }, "Colour": { "description": "Colour representation", "anyOf": [ { "description": "Colour represented as RGB", "$ref": "#/$defs/Rgb" }, { "description": "Colour represented as Hex", "$ref": "#/$defs/Hex" } ] }, "CrossBoundaryBehaviour": { "description": "Behaviour when an action would cross a monitor boundary", "oneOf": [ { "description": "Attempt to perform actions across a workspace boundary", "type": "string", "const": "Workspace" }, { "description": "Attempt to perform actions across a monitor boundary", "type": "string", "const": "Monitor" } ] }, "DefaultLayout": { "description": "A predefined komorebi layout", "oneOf": [ { "description": "BSP Layout\n\n```\n+-------+-----+\n| | |\n| +--+--+\n| | |--|\n+-------+--+--+\n```", "type": "string", "const": "BSP" }, { "description": "Columns Layout\n\n```\n+--+--+--+--+\n| | | | |\n| | | | |\n| | | | |\n+--+--+--+--+\n```", "type": "string", "const": "Columns" }, { "description": "Rows Layout\n\n```\n+-----------+\n|-----------|\n|-----------|\n|-----------|\n+-----------+\n```", "type": "string", "const": "Rows" }, { "description": "Vertical Stack Layout\n\n```\n+-------+-----+\n| | |\n| +-----+\n| | |\n+-------+-----+\n```", "type": "string", "const": "VerticalStack" }, { "description": "Horizontal Stack Layout\n\n```\n+------+------+\n| |\n|------+------+\n| | |\n+------+------+\n```", "type": "string", "const": "HorizontalStack" }, { "description": "Ultrawide Vertical Stack Layout\n\n```\n+-----+-----------+-----+\n| | | |\n| | +-----+\n| | | |\n| | +-----+\n| | | |\n+-----+-----------+-----+\n```", "type": "string", "const": "UltrawideVerticalStack" }, { "description": "Grid Layout\n\n```\n+-----+-----+ +---+---+---+ +---+---+---+ +---+---+---+\n| | | | | | | | | | | | | | |\n| | | | | | | | | | | | | +---+\n+-----+-----+ | +---+---+ +---+---+---+ +---+---| |\n| | | | | | | | | | | | | +---+\n| | | | | | | | | | | | | | |\n+-----+-----+ +---+---+---+ +---+---+---+ +---+---+---+\n 4 windows 5 windows 6 windows 7 windows\n```", "type": "string", "const": "Grid" }, { "description": "Right Main Vertical Stack Layout\n\n```\n+-----+-------+\n| | |\n+-----+ |\n| | |\n+-----+-------+\n```", "type": "string", "const": "RightMainVerticalStack" }, { "description": "Scrolling Layout\n\n```\n+--+--+--+--+--+--+\n| | | |\n| | | |\n| | | |\n+--+--+--+--+--+--+\n```", "type": "string", "const": "Scrolling" } ] }, "FloatingLayerBehaviour": { "description": "Floating layer behaviour when a new window is opened", "oneOf": [ { "description": "Tile new windows (unless they match a float rule or float override is active)", "type": "string", "const": "Tile" }, { "description": "Float new windows", "type": "string", "const": "Float" } ] }, "FocusFollowsMouseImplementation": { "description": "Focus follows mouse implementation", "oneOf": [ { "description": "Custom FFM implementation (slightly more CPU-intensive)", "type": "string", "const": "Komorebi" }, { "description": "Native (legacy) Windows FFM implementation", "type": "string", "const": "Windows" } ] }, "GridLayoutOptions": { "description": "Options for the Grid layout", "type": "object", "properties": { "rows": { "description": "Maximum number of rows per grid column", "type": "integer", "format": "uint", "minimum": 0 } }, "required": [ "rows" ] }, "Hex": { "description": "Colour represented as a Hex string", "type": "string", "format": "color-hex" }, "HidingBehaviour": { "description": "Window hiding behaviour", "oneOf": [ { "description": "END OF LIFE FEATURE: Use the `SW_HIDE` flag to hide windows when switching workspaces (has issues with Electron apps)", "type": "string", "const": "Hide", "deprecated": true }, { "description": "Use the `SW_MINIMIZE` flag to hide windows when switching workspaces (has issues with frequent workspace switching)", "type": "string", "const": "Minimize" }, { "description": "Use the undocumented SetCloak Win32 function to hide windows when switching workspaces", "type": "string", "const": "Cloak" } ] }, "IdWithIdentifier": { "description": "Rule for matching applications", "type": "object", "properties": { "id": { "description": "Target identifier", "type": "string" }, "kind": { "description": "Kind of identifier to target", "$ref": "#/$defs/ApplicationIdentifier" }, "matching_strategy": { "description": "Matching strategy to use", "anyOf": [ { "$ref": "#/$defs/MatchingStrategy" }, { "type": "null" } ] } }, "required": [ "kind", "id" ] }, "KomorebiTheme": { "description": "Komorebi theme", "oneOf": [ { "description": "A theme from catppuccin-egui", "type": "object", "properties": { "bar_accent": { "description": "Komorebi status bar accent", "anyOf": [ { "$ref": "#/$defs/CatppuccinValue" }, { "type": "null" } ], "default": "Blue" }, "floating_border": { "description": "Border colour when the window is floating", "anyOf": [ { "$ref": "#/$defs/CatppuccinValue" }, { "type": "null" } ], "default": "Yellow" }, "monocle_border": { "description": "Border colour when the container is in monocle mode", "anyOf": [ { "$ref": "#/$defs/CatppuccinValue" }, { "type": "null" } ], "default": "Pink" }, "name": { "description": "Name of the Catppuccin theme (theme previews: https://github.com/catppuccin/catppuccin)", "$ref": "#/$defs/Catppuccin" }, "palette": { "type": "string", "const": "Catppuccin" }, "single_border": { "description": "Border colour when the container contains a single window", "anyOf": [ { "$ref": "#/$defs/CatppuccinValue" }, { "type": "null" } ], "default": "Blue" }, "stack_border": { "description": "Border colour when the container contains multiple windows", "anyOf": [ { "$ref": "#/$defs/CatppuccinValue" }, { "type": "null" } ], "default": "Green" }, "stackbar_background": { "description": "Stackbar tab background colour", "anyOf": [ { "$ref": "#/$defs/CatppuccinValue" }, { "type": "null" } ], "default": "Base" }, "stackbar_focused_text": { "description": "Stackbar focused tab text colour", "anyOf": [ { "$ref": "#/$defs/CatppuccinValue" }, { "type": "null" } ], "default": "Green" }, "stackbar_unfocused_text": { "description": "Stackbar unfocused tab text colour", "anyOf": [ { "$ref": "#/$defs/CatppuccinValue" }, { "type": "null" } ], "default": "Text" }, "unfocused_border": { "description": "Border colour when the container is unfocused", "anyOf": [ { "$ref": "#/$defs/CatppuccinValue" }, { "type": "null" } ], "default": "Base" }, "unfocused_locked_border": { "description": "Border colour when the container is unfocused and locked", "anyOf": [ { "$ref": "#/$defs/CatppuccinValue" }, { "type": "null" } ], "default": "Red" } }, "required": [ "palette", "name" ] }, { "description": "A theme from base16-egui-themes", "type": "object", "properties": { "bar_accent": { "description": "Komorebi status bar accent", "anyOf": [ { "$ref": "#/$defs/Base16Value" }, { "type": "null" } ], "default": "Base0D" }, "floating_border": { "description": "Border colour when the window is floating", "anyOf": [ { "$ref": "#/$defs/Base16Value" }, { "type": "null" } ], "default": "Base09" }, "monocle_border": { "description": "Border colour when the container is in monocle mode", "anyOf": [ { "$ref": "#/$defs/Base16Value" }, { "type": "null" } ], "default": "Base0F" }, "name": { "description": "Name of the Base16 theme (theme previews: https://tinted-theming.github.io/tinted-gallery/)", "$ref": "#/$defs/Base16" }, "palette": { "type": "string", "const": "Base16" }, "single_border": { "description": "Border colour when the container contains a single window", "anyOf": [ { "$ref": "#/$defs/Base16Value" }, { "type": "null" } ], "default": "Base0D" }, "stack_border": { "description": "Border colour when the container contains multiple windows", "anyOf": [ { "$ref": "#/$defs/Base16Value" }, { "type": "null" } ], "default": "Base0B" }, "stackbar_background": { "description": "Stackbar tab background colour", "anyOf": [ { "$ref": "#/$defs/Base16Value" }, { "type": "null" } ], "default": "Base01" }, "stackbar_focused_text": { "description": "Stackbar focused tab text colour", "anyOf": [ { "$ref": "#/$defs/Base16Value" }, { "type": "null" } ], "default": "Base0B" }, "stackbar_unfocused_text": { "description": "Stackbar unfocused tab text colour", "anyOf": [ { "$ref": "#/$defs/Base16Value" }, { "type": "null" } ], "default": "Base05" }, "unfocused_border": { "description": "Border colour when the container is unfocused", "anyOf": [ { "$ref": "#/$defs/Base16Value" }, { "type": "null" } ], "default": "Base01" }, "unfocused_locked_border": { "description": "Border colour when the container is unfocused and locked", "anyOf": [ { "$ref": "#/$defs/Base16Value" }, { "type": "null" } ], "default": "Base08" } }, "required": [ "palette", "name" ] }, { "description": "A custom Base16 theme", "type": "object", "properties": { "bar_accent": { "description": "Komorebi status bar accent", "anyOf": [ { "$ref": "#/$defs/Base16Value" }, { "type": "null" } ], "default": "Base0D" }, "colours": { "description": "Colours of the custom Base16 theme palette", "$ref": "#/$defs/Base16ColourPalette" }, "floating_border": { "description": "Border colour when the window is floating", "anyOf": [ { "$ref": "#/$defs/Base16Value" }, { "type": "null" } ], "default": "Base09" }, "monocle_border": { "description": "Border colour when the container is in monocle mode", "anyOf": [ { "$ref": "#/$defs/Base16Value" }, { "type": "null" } ], "default": "Base0F" }, "palette": { "type": "string", "const": "Custom" }, "single_border": { "description": "Border colour when the container contains a single window", "anyOf": [ { "$ref": "#/$defs/Base16Value" }, { "type": "null" } ], "default": "Base0D" }, "stack_border": { "description": "Border colour when the container contains multiple windows", "anyOf": [ { "$ref": "#/$defs/Base16Value" }, { "type": "null" } ], "default": "Base0B" }, "stackbar_background": { "description": "Stackbar tab background colour", "anyOf": [ { "$ref": "#/$defs/Base16Value" }, { "type": "null" } ], "default": "Base01" }, "stackbar_focused_text": { "description": "Stackbar focused tab text colour", "anyOf": [ { "$ref": "#/$defs/Base16Value" }, { "type": "null" } ], "default": "Base0B" }, "stackbar_unfocused_text": { "description": "Stackbar unfocused tab text colour", "anyOf": [ { "$ref": "#/$defs/Base16Value" }, { "type": "null" } ], "default": "Base05" }, "unfocused_border": { "description": "Border colour when the container is unfocused", "anyOf": [ { "$ref": "#/$defs/Base16Value" }, { "type": "null" } ], "default": "Base01" }, "unfocused_locked_border": { "description": "Border colour when the container is unfocused and locked", "anyOf": [ { "$ref": "#/$defs/Base16Value" }, { "type": "null" } ], "default": "Base08" } }, "required": [ "palette", "colours" ] } ] }, "LayoutOptions": { "description": "Options for specific layouts", "type": "object", "properties": { "grid": { "description": "Options related to the Grid layout", "anyOf": [ { "$ref": "#/$defs/GridLayoutOptions" }, { "type": "null" } ] }, "scrolling": { "description": "Options related to the Scrolling layout", "anyOf": [ { "$ref": "#/$defs/ScrollingLayoutOptions" }, { "type": "null" } ] } } }, "MatchingRule": { "description": "Rule for matching applications", "anyOf": [ { "description": "Simple matching rule which must evaluate to true", "$ref": "#/$defs/IdWithIdentifier" }, { "description": "Composite matching rule where all conditions must evaluate to true", "type": "array", "items": { "$ref": "#/$defs/IdWithIdentifier" } } ] }, "MatchingStrategy": { "description": "Strategy for matching identifiers", "oneOf": [ { "description": "Should not be used, only kept for backward compatibility", "type": "string", "const": "Legacy" }, { "description": "Equals", "type": "string", "const": "Equals" }, { "description": "Starts With", "type": "string", "const": "StartsWith" }, { "description": "Ends With", "type": "string", "const": "EndsWith" }, { "description": "Contains", "type": "string", "const": "Contains" }, { "description": "Regex", "type": "string", "const": "Regex" }, { "description": "Does not end with", "type": "string", "const": "DoesNotEndWith" }, { "description": "Does not start with", "type": "string", "const": "DoesNotStartWith" }, { "description": "Does not equal", "type": "string", "const": "DoesNotEqual" }, { "description": "Does not contain", "type": "string", "const": "DoesNotContain" } ] }, "MonitorConfig": { "description": "Monitor configuration", "type": "object", "properties": { "container_padding": { "description": "Container padding (default: global)", "type": [ "integer", "null" ], "format": "int32" }, "floating_layer_behaviour": { "description": "Determine what happens to a new window when the Floating workspace layer is active", "anyOf": [ { "$ref": "#/$defs/FloatingLayerBehaviour" }, { "type": "null" } ], "default": "Tile" }, "wallpaper": { "description": "Specify a wallpaper for this monitor", "anyOf": [ { "$ref": "#/$defs/Wallpaper" }, { "type": "null" } ] }, "window_based_work_area_offset": { "description": "Window based work area offset", "anyOf": [ { "$ref": "#/$defs/Rect" }, { "type": "null" } ] }, "window_based_work_area_offset_limit": { "description": "Open window limit after which the window based work area offset will no longer be applied", "type": [ "integer", "null" ], "format": "int", "default": 1 }, "work_area_offset": { "description": "Monitor-specific work area offset", "anyOf": [ { "$ref": "#/$defs/Rect" }, { "type": "null" } ] }, "workspace_padding": { "description": "Workspace padding (default: global)", "type": [ "integer", "null" ], "format": "int32" }, "workspaces": { "description": "Workspace configurations", "type": "array", "items": { "$ref": "#/$defs/WorkspaceConfig" } } }, "required": [ "workspaces" ] }, "MoveBehaviour": { "description": "Move behaviour when the operation works across a monitor boundary", "oneOf": [ { "description": "Swap the window container with the window container at the edge of the adjacent monitor", "type": "string", "const": "Swap" }, { "description": "Insert the window container into the focused workspace on the adjacent monitor", "type": "string", "const": "Insert" }, { "description": "Do nothing if trying to move a window container in the direction of an adjacent monitor", "type": "string", "const": "NoOp" } ] }, "OperationBehaviour": { "description": "Operation behaviour for temporarily unmanaged and floating windows", "oneOf": [ { "description": "Process commands on temporarily unmanaged/floated windows", "type": "string", "const": "Op" }, { "description": "Ignore commands on temporarily unmanaged/floated windows", "type": "string", "const": "NoOp" } ] }, "PathBuf": { "type": "string" }, "PerAnimationPrefixConfig": { "description": "Animation configuration\n\nThis can be either global:\n```json\n{\n \"enabled\": true,\n \"style\": \"EaseInSine\",\n \"fps\": 60,\n \"duration\": 250\n}\n```\n\nOr scoped by an animation kind prefix:\n```json\n{\n \"movement\": {\n \"enabled\": true,\n \"style\": \"EaseInSine\",\n \"fps\": 60,\n \"duration\": 250\n }\n}\n```", "anyOf": [ { "description": "Animation configuration prefixed for a specific animation kind", "type": "object", "additionalProperties": { "type": "boolean" } }, { "description": "Animation configuration for all animation kinds", "type": "boolean" } ] }, "PerAnimationPrefixConfig2": { "description": "Animation configuration\n\nThis can be either global:\n```json\n{\n \"enabled\": true,\n \"style\": \"EaseInSine\",\n \"fps\": 60,\n \"duration\": 250\n}\n```\n\nOr scoped by an animation kind prefix:\n```json\n{\n \"movement\": {\n \"enabled\": true,\n \"style\": \"EaseInSine\",\n \"fps\": 60,\n \"duration\": 250\n }\n}\n```", "anyOf": [ { "description": "Animation configuration prefixed for a specific animation kind", "type": "object", "additionalProperties": { "type": "integer", "format": "uint64", "minimum": 0 } }, { "description": "Animation configuration for all animation kinds", "type": "integer", "format": "uint64", "minimum": 0 } ] }, "PerAnimationPrefixConfig3": { "description": "Animation configuration\n\nThis can be either global:\n```json\n{\n \"enabled\": true,\n \"style\": \"EaseInSine\",\n \"fps\": 60,\n \"duration\": 250\n}\n```\n\nOr scoped by an animation kind prefix:\n```json\n{\n \"movement\": {\n \"enabled\": true,\n \"style\": \"EaseInSine\",\n \"fps\": 60,\n \"duration\": 250\n }\n}\n```", "anyOf": [ { "description": "Animation configuration prefixed for a specific animation kind", "type": "object", "additionalProperties": { "$ref": "#/$defs/AnimationStyle" } }, { "description": "Animation configuration for all animation kinds", "$ref": "#/$defs/AnimationStyle" } ] }, "Placement": { "description": "Placement behaviour for floating windows", "oneOf": [ { "description": "Does not change the size or position of the window", "type": "string", "const": "None" }, { "description": "Center the window without changing the size", "type": "string", "const": "Center" }, { "description": "Center the window and resize it according to the `AspectRatio`", "type": "string", "const": "CenterAndResize" } ] }, "PredefinedAspectRatio": { "description": "Predefined aspect ratio", "oneOf": [ { "description": "21:9", "type": "string", "const": "Ultrawide" }, { "description": "16:9", "type": "string", "const": "Widescreen" }, { "description": "4:3", "type": "string", "const": "Standard" } ] }, "Rect": { "description": "Rectangle dimensions", "type": "object", "properties": { "bottom": { "description": "Height of the rectangle (from the top point)", "type": "integer", "format": "int32" }, "left": { "description": "Left point of the rectangle", "type": "integer", "format": "int32" }, "right": { "description": "Width of the recentangle (from the left point)", "type": "integer", "format": "int32" }, "top": { "description": "Top point of the rectangle", "type": "integer", "format": "int32" } }, "required": [ "left", "top", "right", "bottom" ] }, "Rgb": { "description": "Colour represented as RGB", "type": "object", "properties": { "b": { "description": "Blue", "type": "integer", "format": "uint32", "minimum": 0 }, "g": { "description": "Green", "type": "integer", "format": "uint32", "minimum": 0 }, "r": { "description": "Red", "type": "integer", "format": "uint32", "minimum": 0 } }, "required": [ "r", "g", "b" ] }, "ScrollingLayoutOptions": { "description": "Options for the Scrolling layout", "type": "object", "properties": { "center_focused_column": { "description": "With an odd number of visible columns, keep the focused window column centered", "type": [ "boolean", "null" ] }, "columns": { "description": "Desired number of visible columns (default: 3)", "type": "integer", "format": "uint", "minimum": 0 } }, "required": [ "columns" ] }, "StackbarConfig": { "description": "Stackbar configuration", "type": "object", "properties": { "height": { "description": "Stackbar height", "type": [ "integer", "null" ], "format": "int32" }, "label": { "description": "Stackbar label", "anyOf": [ { "$ref": "#/$defs/StackbarLabel" }, { "type": "null" } ] }, "mode": { "description": "Stackbar mode", "anyOf": [ { "$ref": "#/$defs/StackbarMode" }, { "type": "null" } ], "default": "Never" }, "tabs": { "description": "Stackbar tab configuration options", "anyOf": [ { "$ref": "#/$defs/TabsConfig" }, { "type": "null" } ] } } }, "StackbarLabel": { "description": "Starbar label", "oneOf": [ { "description": "Process name", "type": "string", "const": "Process" }, { "description": "Window title", "type": "string", "const": "Title" } ] }, "StackbarMode": { "description": "Stackbar mode", "oneOf": [ { "description": "Always show", "type": "string", "const": "Always" }, { "description": "Never show", "type": "string", "const": "Never" }, { "description": "Show on stack", "type": "string", "const": "OnStack" } ] }, "TabsConfig": { "description": "Stackbar tabs configuration", "type": "object", "properties": { "background": { "description": "Tab background colour", "anyOf": [ { "$ref": "#/$defs/Colour" }, { "type": "null" } ] }, "focused_text": { "description": "Focused tab text colour", "anyOf": [ { "$ref": "#/$defs/Colour" }, { "type": "null" } ] }, "font_family": { "description": "Font family", "type": [ "string", "null" ] }, "font_size": { "description": "Font size", "type": [ "integer", "null" ], "format": "int32" }, "unfocused_text": { "description": "Unfocused tab text colour", "anyOf": [ { "$ref": "#/$defs/Colour" }, { "type": "null" } ] }, "width": { "description": "Width of a stackbar tab", "type": [ "integer", "null" ], "format": "int32" } } }, "ThemeOptions": { "description": "Theme options", "type": "object", "properties": { "bar_accent": { "description": "Komorebi status bar accent", "anyOf": [ { "$ref": "#/$defs/Base16Value" }, { "type": "null" } ], "default": "Base0D" }, "floating_border": { "description": "Border colour when the window is floating", "anyOf": [ { "$ref": "#/$defs/Base16Value" }, { "type": "null" } ], "default": "Base09" }, "monocle_border": { "description": "Border colour when the container is in monocle mode", "anyOf": [ { "$ref": "#/$defs/Base16Value" }, { "type": "null" } ], "default": "Base0F" }, "single_border": { "description": "Border colour when the container contains a single window", "anyOf": [ { "$ref": "#/$defs/Base16Value" }, { "type": "null" } ], "default": "Base0D" }, "stack_border": { "description": "Border colour when the container contains multiple windows", "anyOf": [ { "$ref": "#/$defs/Base16Value" }, { "type": "null" } ], "default": "Base0B" }, "stackbar_background": { "description": "Stackbar tab background colour", "anyOf": [ { "$ref": "#/$defs/Base16Value" }, { "type": "null" } ], "default": "Base01" }, "stackbar_focused_text": { "description": "Stackbar focused tab text colour", "anyOf": [ { "$ref": "#/$defs/Base16Value" }, { "type": "null" } ], "default": "Base0B" }, "stackbar_unfocused_text": { "description": "Stackbar unfocused tab text colour", "anyOf": [ { "$ref": "#/$defs/Base16Value" }, { "type": "null" } ], "default": "Base05" }, "theme_variant": { "description": "Specify Light or Dark variant for theme generation", "anyOf": [ { "$ref": "#/$defs/ThemeVariant" }, { "type": "null" } ], "default": "Dark" }, "unfocused_border": { "description": "Border colour when the container is unfocused", "anyOf": [ { "$ref": "#/$defs/Base16Value" }, { "type": "null" } ], "default": "Base01" }, "unfocused_locked_border": { "description": "Border colour when the container is unfocused and locked", "anyOf": [ { "$ref": "#/$defs/Base16Value" }, { "type": "null" } ], "default": "Base08" } } }, "ThemeVariant": { "description": "Theme variant", "oneOf": [ { "description": "Dark variant", "type": "string", "const": "Dark" }, { "description": "Light variant", "type": "string", "const": "Light" } ] }, "Wallpaper": { "description": "Wallpaper configuration", "type": "object", "properties": { "generate_theme": { "description": "Generate and apply Base16 theme for this wallpaper", "type": [ "boolean", "null" ], "default": true }, "path": { "description": "Path to the wallpaper image file", "$ref": "#/$defs/PathBuf" }, "theme_options": { "description": "Specify Light or Dark variant for theme generation", "anyOf": [ { "$ref": "#/$defs/ThemeOptions" }, { "type": "null" } ], "default": "Dark" } }, "required": [ "path" ] }, "WindowContainerBehaviour": { "description": "Window container behaviour when a new window is opened", "oneOf": [ { "description": "Create a new container for each new window", "type": "string", "const": "Create" }, { "description": "Append new windows to the focused window container", "type": "string", "const": "Append" } ] }, "WindowHandlingBehaviour": { "description": "Window handling behaviour", "oneOf": [ { "description": "Synchronous", "type": "string", "const": "Sync" }, { "description": "Asynchronous", "type": "string", "const": "Async" } ] }, "WorkspaceConfig": { "description": "Workspace configuration", "type": "object", "properties": { "apply_window_based_work_area_offset": { "description": "Apply this monitor's window-based work area offset", "type": [ "boolean", "null" ], "default": true }, "container_padding": { "description": "Container padding (default: global)", "type": [ "integer", "null" ], "format": "int32" }, "custom_layout": { "description": "END OF LIFE FEATURE: Custom Layout", "anyOf": [ { "$ref": "#/$defs/PathBuf" }, { "type": "null" } ], "deprecated": true }, "custom_layout_rules": { "description": "END OF LIFE FEATURE: Custom layout rules", "type": [ "object", "null" ], "additionalProperties": false, "deprecated": true, "patternProperties": { "^\\d+$": { "type": "string" } } }, "float_override": { "description": "Enable or disable float override, which makes it so every new window opens in floating mode", "type": [ "boolean", "null" ], "default": false }, "floating_layer_behaviour": { "description": "Determine what happens to a new window when the Floating workspace layer is active", "anyOf": [ { "$ref": "#/$defs/FloatingLayerBehaviour" }, { "type": "null" } ], "default": "Tile" }, "initial_workspace_rules": { "description": "Initial workspace application rules", "type": [ "array", "null" ], "items": { "$ref": "#/$defs/MatchingRule" } }, "layout": { "description": "Layout", "anyOf": [ { "$ref": "#/$defs/DefaultLayout" }, { "type": "null" } ], "default": "BSP" }, "layout_flip": { "description": "Specify an axis on which to flip the selected layout", "anyOf": [ { "$ref": "#/$defs/Axis" }, { "type": "null" } ] }, "layout_options": { "description": "Layout-specific options", "anyOf": [ { "$ref": "#/$defs/LayoutOptions" }, { "type": "null" } ] }, "layout_rules": { "description": "Layout rules in the format of threshold => layout", "type": [ "object", "null" ], "additionalProperties": false, "patternProperties": { "^\\d+$": { "$ref": "#/$defs/DefaultLayout" } } }, "name": { "description": "Name", "type": "string" }, "tile": { "description": "Enable or disable tiling for the workspace", "type": [ "boolean", "null" ], "default": true }, "wallpaper": { "description": "Specify a wallpaper for this workspace", "anyOf": [ { "$ref": "#/$defs/Wallpaper" }, { "type": "null" } ] }, "window_container_behaviour": { "description": "Determine what happens when a new window is opened", "anyOf": [ { "$ref": "#/$defs/WindowContainerBehaviour" }, { "type": "null" } ], "default": "Create" }, "window_container_behaviour_rules": { "description": "Window container behaviour rules in the format of threshold => behaviour", "type": [ "object", "null" ], "additionalProperties": false, "patternProperties": { "^\\d+$": { "$ref": "#/$defs/WindowContainerBehaviour" } } }, "work_area_offset": { "description": "Workspace specific work area offset", "anyOf": [ { "$ref": "#/$defs/Rect" }, { "type": "null" } ] }, "workspace_padding": { "description": "Workspace padding (default: global)", "type": [ "integer", "null" ], "format": "int32" }, "workspace_rules": { "description": "Permanent workspace application rules", "type": [ "array", "null" ], "items": { "$ref": "#/$defs/MatchingRule" } } }, "required": [ "name" ] }, "ZOrder": { "description": "Z Order (https://learn.microsoft.com/en-us/windows/win32/api/winuser/nf-winuser-setwindowpos)", "oneOf": [ { "description": "HWND_TOP\n\nPlaces the window at the top of the Z order.", "type": "string", "const": "Top" }, { "description": "HWND_NOTOPMOST\n\nPlaces the window above all non-topmost windows (that is, behind all topmost windows).\nThis flag has no effect if the window is already a non-topmost window.", "type": "string", "const": "NoTopMost" }, { "description": "HWND_BOTTOM\n\nPlaces the window at the bottom of the Z order. If the hWnd parameter identifies a topmost window,\nthe window loses its topmost status and is placed at the bottom of all other windows.", "type": "string", "const": "Bottom" }, { "description": "HWND_TOPMOST\n\nPlaces the window above all non-topmost windows.\nThe window maintains its topmost position even when it is deactivated.", "type": "string", "const": "TopMost" } ] } } }