mirror of
https://github.com/LGUG2Z/komorebi.git
synced 2026-04-21 00:01:26 +02:00
feat(themes): add + integrate komorebi-themes lib
This commit abstracts the theme-related code from komorebi-bar into a separate library which is now also consumed by komorebi. The static configuration file for komorebi has been updated to allow users to specify themes and provide palette overrides for various border styles and stackbar configuration options. In the event that both a theme and border-specific and/or stackbar-specific colours have been specified, the theme will take priority to make it as easy as possible for users who have already spent time tweaking their colours to try out themes and quickly revert back if they prefer their existing colours. This change makes it easier for users to have unified themes between komorebi and the komorebi status bar.
This commit is contained in:
723
schema.json
723
schema.json
@@ -236,7 +236,7 @@
|
||||
}
|
||||
},
|
||||
"border_implementation": {
|
||||
"description": "Display an active window border (default: false)",
|
||||
"description": "Active window border implementation (default: Komorebi)",
|
||||
"oneOf": [
|
||||
{
|
||||
"description": "Use the adjustable komorebi border implementation",
|
||||
@@ -383,6 +383,25 @@
|
||||
"TopMost"
|
||||
]
|
||||
},
|
||||
"cross_boundary_behaviour": {
|
||||
"description": "Determine what happens when an action is called on a window at a monitor boundary (default: Monitor)",
|
||||
"oneOf": [
|
||||
{
|
||||
"description": "Attempt to perform actions across a workspace boundary",
|
||||
"type": "string",
|
||||
"enum": [
|
||||
"Workspace"
|
||||
]
|
||||
},
|
||||
{
|
||||
"description": "Attempt to perform actions across a monitor boundary",
|
||||
"type": "string",
|
||||
"enum": [
|
||||
"Monitor"
|
||||
]
|
||||
}
|
||||
]
|
||||
},
|
||||
"cross_monitor_move_behaviour": {
|
||||
"description": "Determine what happens when a window is moved across a monitor boundary (default: Swap)",
|
||||
"oneOf": [
|
||||
@@ -1138,7 +1157,7 @@
|
||||
"format": "int32"
|
||||
},
|
||||
"label": {
|
||||
"description": "Stackbar height",
|
||||
"description": "Stackbar label",
|
||||
"type": "string",
|
||||
"enum": [
|
||||
"Process",
|
||||
@@ -1293,6 +1312,706 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"theme": {
|
||||
"description": "Theme configuration options",
|
||||
"oneOf": [
|
||||
{
|
||||
"description": "A theme from catppuccin-egui",
|
||||
"type": "object",
|
||||
"required": [
|
||||
"name",
|
||||
"type"
|
||||
],
|
||||
"properties": {
|
||||
"monocle_border": {
|
||||
"description": "Border colour when the container is in monocle mode (default: Pink)",
|
||||
"type": "string",
|
||||
"enum": [
|
||||
"Rosewater",
|
||||
"Flamingo",
|
||||
"Pink",
|
||||
"Mauve",
|
||||
"Red",
|
||||
"Maroon",
|
||||
"Peach",
|
||||
"Yellow",
|
||||
"Green",
|
||||
"Teal",
|
||||
"Sky",
|
||||
"Sapphire",
|
||||
"Blue",
|
||||
"Lavender",
|
||||
"Text",
|
||||
"Subtext1",
|
||||
"Subtext0",
|
||||
"Overlay2",
|
||||
"Overlay1",
|
||||
"Overlay0",
|
||||
"Surface2",
|
||||
"Surface1",
|
||||
"Surface0",
|
||||
"Base",
|
||||
"Mantle",
|
||||
"Crust"
|
||||
]
|
||||
},
|
||||
"name": {
|
||||
"description": "Name of the Catppuccin theme",
|
||||
"type": "string",
|
||||
"enum": [
|
||||
"Frappe",
|
||||
"Latte",
|
||||
"Macchiato",
|
||||
"Mocha"
|
||||
]
|
||||
},
|
||||
"single_border": {
|
||||
"description": "Border colour when the container contains a single window (default: Blue)",
|
||||
"type": "string",
|
||||
"enum": [
|
||||
"Rosewater",
|
||||
"Flamingo",
|
||||
"Pink",
|
||||
"Mauve",
|
||||
"Red",
|
||||
"Maroon",
|
||||
"Peach",
|
||||
"Yellow",
|
||||
"Green",
|
||||
"Teal",
|
||||
"Sky",
|
||||
"Sapphire",
|
||||
"Blue",
|
||||
"Lavender",
|
||||
"Text",
|
||||
"Subtext1",
|
||||
"Subtext0",
|
||||
"Overlay2",
|
||||
"Overlay1",
|
||||
"Overlay0",
|
||||
"Surface2",
|
||||
"Surface1",
|
||||
"Surface0",
|
||||
"Base",
|
||||
"Mantle",
|
||||
"Crust"
|
||||
]
|
||||
},
|
||||
"stack_border": {
|
||||
"description": "Border colour when the container contains multiple windows (default: Green)",
|
||||
"type": "string",
|
||||
"enum": [
|
||||
"Rosewater",
|
||||
"Flamingo",
|
||||
"Pink",
|
||||
"Mauve",
|
||||
"Red",
|
||||
"Maroon",
|
||||
"Peach",
|
||||
"Yellow",
|
||||
"Green",
|
||||
"Teal",
|
||||
"Sky",
|
||||
"Sapphire",
|
||||
"Blue",
|
||||
"Lavender",
|
||||
"Text",
|
||||
"Subtext1",
|
||||
"Subtext0",
|
||||
"Overlay2",
|
||||
"Overlay1",
|
||||
"Overlay0",
|
||||
"Surface2",
|
||||
"Surface1",
|
||||
"Surface0",
|
||||
"Base",
|
||||
"Mantle",
|
||||
"Crust"
|
||||
]
|
||||
},
|
||||
"stackbar_background": {
|
||||
"description": "Stackbar tab background colour (default: Base)",
|
||||
"type": "string",
|
||||
"enum": [
|
||||
"Rosewater",
|
||||
"Flamingo",
|
||||
"Pink",
|
||||
"Mauve",
|
||||
"Red",
|
||||
"Maroon",
|
||||
"Peach",
|
||||
"Yellow",
|
||||
"Green",
|
||||
"Teal",
|
||||
"Sky",
|
||||
"Sapphire",
|
||||
"Blue",
|
||||
"Lavender",
|
||||
"Text",
|
||||
"Subtext1",
|
||||
"Subtext0",
|
||||
"Overlay2",
|
||||
"Overlay1",
|
||||
"Overlay0",
|
||||
"Surface2",
|
||||
"Surface1",
|
||||
"Surface0",
|
||||
"Base",
|
||||
"Mantle",
|
||||
"Crust"
|
||||
]
|
||||
},
|
||||
"stackbar_focused_text": {
|
||||
"description": "Stackbar focused tab text colour (default: Green)",
|
||||
"type": "string",
|
||||
"enum": [
|
||||
"Rosewater",
|
||||
"Flamingo",
|
||||
"Pink",
|
||||
"Mauve",
|
||||
"Red",
|
||||
"Maroon",
|
||||
"Peach",
|
||||
"Yellow",
|
||||
"Green",
|
||||
"Teal",
|
||||
"Sky",
|
||||
"Sapphire",
|
||||
"Blue",
|
||||
"Lavender",
|
||||
"Text",
|
||||
"Subtext1",
|
||||
"Subtext0",
|
||||
"Overlay2",
|
||||
"Overlay1",
|
||||
"Overlay0",
|
||||
"Surface2",
|
||||
"Surface1",
|
||||
"Surface0",
|
||||
"Base",
|
||||
"Mantle",
|
||||
"Crust"
|
||||
]
|
||||
},
|
||||
"stackbar_unfocused_text": {
|
||||
"description": "Stackbar unfocused tab text colour (default: Text)",
|
||||
"type": "string",
|
||||
"enum": [
|
||||
"Rosewater",
|
||||
"Flamingo",
|
||||
"Pink",
|
||||
"Mauve",
|
||||
"Red",
|
||||
"Maroon",
|
||||
"Peach",
|
||||
"Yellow",
|
||||
"Green",
|
||||
"Teal",
|
||||
"Sky",
|
||||
"Sapphire",
|
||||
"Blue",
|
||||
"Lavender",
|
||||
"Text",
|
||||
"Subtext1",
|
||||
"Subtext0",
|
||||
"Overlay2",
|
||||
"Overlay1",
|
||||
"Overlay0",
|
||||
"Surface2",
|
||||
"Surface1",
|
||||
"Surface0",
|
||||
"Base",
|
||||
"Mantle",
|
||||
"Crust"
|
||||
]
|
||||
},
|
||||
"type": {
|
||||
"type": "string",
|
||||
"enum": [
|
||||
"Catppuccin"
|
||||
]
|
||||
},
|
||||
"unfocused_border": {
|
||||
"description": "Border colour when the container is unfocused (default: Base)",
|
||||
"type": "string",
|
||||
"enum": [
|
||||
"Rosewater",
|
||||
"Flamingo",
|
||||
"Pink",
|
||||
"Mauve",
|
||||
"Red",
|
||||
"Maroon",
|
||||
"Peach",
|
||||
"Yellow",
|
||||
"Green",
|
||||
"Teal",
|
||||
"Sky",
|
||||
"Sapphire",
|
||||
"Blue",
|
||||
"Lavender",
|
||||
"Text",
|
||||
"Subtext1",
|
||||
"Subtext0",
|
||||
"Overlay2",
|
||||
"Overlay1",
|
||||
"Overlay0",
|
||||
"Surface2",
|
||||
"Surface1",
|
||||
"Surface0",
|
||||
"Base",
|
||||
"Mantle",
|
||||
"Crust"
|
||||
]
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"description": "A theme from base16-egui-themes",
|
||||
"type": "object",
|
||||
"required": [
|
||||
"name",
|
||||
"type"
|
||||
],
|
||||
"properties": {
|
||||
"monocle_border": {
|
||||
"description": "Border colour when the container is in monocle mode (default: Base0F)",
|
||||
"type": "string",
|
||||
"enum": [
|
||||
"Base00",
|
||||
"Base01",
|
||||
"Base02",
|
||||
"Base03",
|
||||
"Base04",
|
||||
"Base05",
|
||||
"Base06",
|
||||
"Base07",
|
||||
"Base08",
|
||||
"Base09",
|
||||
"Base0A",
|
||||
"Base0B",
|
||||
"Base0C",
|
||||
"Base0D",
|
||||
"Base0E",
|
||||
"Base0F"
|
||||
]
|
||||
},
|
||||
"name": {
|
||||
"description": "Name of the Base16 theme",
|
||||
"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"
|
||||
]
|
||||
},
|
||||
"single_border": {
|
||||
"description": "Border colour when the container contains a single window (default: Base0D)",
|
||||
"type": "string",
|
||||
"enum": [
|
||||
"Base00",
|
||||
"Base01",
|
||||
"Base02",
|
||||
"Base03",
|
||||
"Base04",
|
||||
"Base05",
|
||||
"Base06",
|
||||
"Base07",
|
||||
"Base08",
|
||||
"Base09",
|
||||
"Base0A",
|
||||
"Base0B",
|
||||
"Base0C",
|
||||
"Base0D",
|
||||
"Base0E",
|
||||
"Base0F"
|
||||
]
|
||||
},
|
||||
"stack_border": {
|
||||
"description": "Border colour when the container contains multiple windows (default: Base0B)",
|
||||
"type": "string",
|
||||
"enum": [
|
||||
"Base00",
|
||||
"Base01",
|
||||
"Base02",
|
||||
"Base03",
|
||||
"Base04",
|
||||
"Base05",
|
||||
"Base06",
|
||||
"Base07",
|
||||
"Base08",
|
||||
"Base09",
|
||||
"Base0A",
|
||||
"Base0B",
|
||||
"Base0C",
|
||||
"Base0D",
|
||||
"Base0E",
|
||||
"Base0F"
|
||||
]
|
||||
},
|
||||
"stackbar_background": {
|
||||
"description": "Stackbar tab background colour (default: Base01)",
|
||||
"type": "string",
|
||||
"enum": [
|
||||
"Base00",
|
||||
"Base01",
|
||||
"Base02",
|
||||
"Base03",
|
||||
"Base04",
|
||||
"Base05",
|
||||
"Base06",
|
||||
"Base07",
|
||||
"Base08",
|
||||
"Base09",
|
||||
"Base0A",
|
||||
"Base0B",
|
||||
"Base0C",
|
||||
"Base0D",
|
||||
"Base0E",
|
||||
"Base0F"
|
||||
]
|
||||
},
|
||||
"stackbar_focused_text": {
|
||||
"description": "Stackbar focused tab text colour (default: Base0B)",
|
||||
"type": "string",
|
||||
"enum": [
|
||||
"Base00",
|
||||
"Base01",
|
||||
"Base02",
|
||||
"Base03",
|
||||
"Base04",
|
||||
"Base05",
|
||||
"Base06",
|
||||
"Base07",
|
||||
"Base08",
|
||||
"Base09",
|
||||
"Base0A",
|
||||
"Base0B",
|
||||
"Base0C",
|
||||
"Base0D",
|
||||
"Base0E",
|
||||
"Base0F"
|
||||
]
|
||||
},
|
||||
"stackbar_unfocused_text": {
|
||||
"description": "Stackbar unfocused tab text colour (default: Base05)",
|
||||
"type": "string",
|
||||
"enum": [
|
||||
"Base00",
|
||||
"Base01",
|
||||
"Base02",
|
||||
"Base03",
|
||||
"Base04",
|
||||
"Base05",
|
||||
"Base06",
|
||||
"Base07",
|
||||
"Base08",
|
||||
"Base09",
|
||||
"Base0A",
|
||||
"Base0B",
|
||||
"Base0C",
|
||||
"Base0D",
|
||||
"Base0E",
|
||||
"Base0F"
|
||||
]
|
||||
},
|
||||
"type": {
|
||||
"type": "string",
|
||||
"enum": [
|
||||
"Base16"
|
||||
]
|
||||
},
|
||||
"unfocused_border": {
|
||||
"description": "Border colour when the container is unfocused (default: Base01)",
|
||||
"type": "string",
|
||||
"enum": [
|
||||
"Base00",
|
||||
"Base01",
|
||||
"Base02",
|
||||
"Base03",
|
||||
"Base04",
|
||||
"Base05",
|
||||
"Base06",
|
||||
"Base07",
|
||||
"Base08",
|
||||
"Base09",
|
||||
"Base0A",
|
||||
"Base0B",
|
||||
"Base0C",
|
||||
"Base0D",
|
||||
"Base0E",
|
||||
"Base0F"
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
"transparency": {
|
||||
"description": "Add transparency to unfocused windows (default: false)",
|
||||
"type": "boolean"
|
||||
|
||||
Reference in New Issue
Block a user