Skip to content

Instantly share code, notes, and snippets.

@LGUG2Z
Created September 9, 2024 00:52
Show Gist options
  • Save LGUG2Z/f4d2c0ee69de8b136fea453656f310f0 to your computer and use it in GitHub Desktop.
Save LGUG2Z/f4d2c0ee69de8b136fea453656f310f0 to your computer and use it in GitHub Desktop.
testschema.json
{
"$schema": "http://json-schema.org/draft-07/schema#",
"title": "KomobarConfig",
"type": "object",
"required": [
"left_widgets",
"monitor",
"right_widgets",
"theme",
"viewport"
],
"properties": {
"font_family": {
"description": "Font family",
"type": "string"
},
"frame": {
"description": "Frame options (see: https://docs.rs/egui/latest/egui/containers/struct.Frame.html)",
"type": "object",
"required": [
"outer_margin"
],
"properties": {
"outer_margin": {
"description": "Margin outside the painted frame",
"type": "object",
"required": [
"x",
"y"
],
"properties": {
"x": {
"description": "X coordinate",
"type": "number",
"format": "float"
},
"y": {
"description": "Y coordinate",
"type": "number",
"format": "float"
}
}
}
}
},
"left_widgets": {
"description": "Left side widgets (ordered left-to-right)",
"type": "array",
"items": {
"oneOf": [
{
"type": "object",
"required": [
"Battery"
],
"properties": {
"Battery": {
"type": "object",
"required": [
"enable"
],
"properties": {
"enable": {
"description": "Enable the Battery widget",
"type": "boolean"
}
}
}
},
"additionalProperties": false
},
{
"type": "object",
"required": [
"Date"
],
"properties": {
"Date": {
"type": "object",
"required": [
"enable",
"format"
],
"properties": {
"enable": {
"description": "Enable the Date widget",
"type": "boolean"
},
"format": {
"description": "Set the Date format",
"oneOf": [
{
"description": "Month/Date/Year format (09/08/24)",
"type": "string",
"enum": [
"MonthDateYear"
]
},
{
"description": "Year-Month-Date format (2024-09-08)",
"type": "string",
"enum": [
"YearMonthDate"
]
},
{
"description": "Date-Month-Year format (8-Sep-2024)",
"type": "string",
"enum": [
"DateMonthYear"
]
},
{
"description": "Day Date Month Year format (8 September 2024)",
"type": "string",
"enum": [
"DayDateMonthYear"
]
},
{
"description": "Custom format (https://docs.rs/chrono/latest/chrono/format/strftime/index.html)",
"type": "object",
"required": [
"Custom"
],
"properties": {
"Custom": {
"type": "string"
}
},
"additionalProperties": false
}
]
}
}
}
},
"additionalProperties": false
},
{
"type": "object",
"required": [
"Komorebi"
],
"properties": {
"Komorebi": {
"type": "object",
"required": [
"focused_window",
"layout",
"workspaces"
],
"properties": {
"focused_window": {
"description": "Configure the Focused Window widget",
"type": "object",
"required": [
"enable",
"show_icon"
],
"properties": {
"enable": {
"description": "Enable the Komorebi Focused Window widget",
"type": "boolean"
},
"show_icon": {
"description": "Show the icon of the currently focused window",
"type": "boolean"
}
}
},
"layout": {
"description": "Configure the Layout widget",
"type": "object",
"required": [
"enable"
],
"properties": {
"enable": {
"description": "Enable the Komorebi Layout widget",
"type": "boolean"
}
}
},
"workspaces": {
"description": "Configure the Workspaces widget",
"type": "object",
"required": [
"enable",
"hide_empty_workspaces"
],
"properties": {
"enable": {
"description": "Enable the Komorebi Workspaces widget",
"type": "boolean"
},
"hide_empty_workspaces": {
"description": "Hide workspaces without any windows",
"type": "boolean"
}
}
}
}
}
},
"additionalProperties": false
},
{
"type": "object",
"required": [
"Media"
],
"properties": {
"Media": {
"type": "object",
"required": [
"enable"
],
"properties": {
"enable": {
"description": "Enable the Media widget",
"type": "boolean"
}
}
}
},
"additionalProperties": false
},
{
"type": "object",
"required": [
"Memory"
],
"properties": {
"Memory": {
"type": "object",
"required": [
"enable"
],
"properties": {
"enable": {
"description": "Enable the Memory widget",
"type": "boolean"
}
}
}
},
"additionalProperties": false
},
{
"type": "object",
"required": [
"Network"
],
"properties": {
"Network": {
"type": "object",
"required": [
"enable",
"show_data"
],
"properties": {
"enable": {
"description": "Enable the Network widget",
"type": "boolean"
},
"show_data": {
"description": "Show network transfer data",
"type": "boolean"
}
}
}
},
"additionalProperties": false
},
{
"type": "object",
"required": [
"Storage"
],
"properties": {
"Storage": {
"type": "object",
"required": [
"enable"
],
"properties": {
"enable": {
"description": "Enable the Storage widget",
"type": "boolean"
}
}
}
},
"additionalProperties": false
},
{
"type": "object",
"required": [
"Time"
],
"properties": {
"Time": {
"type": "object",
"required": [
"enable",
"format"
],
"properties": {
"enable": {
"description": "Enable the Time widget",
"type": "boolean"
},
"format": {
"description": "Set the Time format",
"oneOf": [
{
"description": "Twelve-hour format (with seconds)",
"type": "string",
"enum": [
"TwelveHour"
]
},
{
"description": "Twenty-four-hour format (with seconds)",
"type": "string",
"enum": [
"TwentyFourHour"
]
},
{
"description": "Custom format (https://docs.rs/chrono/latest/chrono/format/strftime/index.html)",
"type": "object",
"required": [
"Custom"
],
"properties": {
"Custom": {
"type": "string"
}
},
"additionalProperties": false
}
]
}
}
}
},
"additionalProperties": false
}
]
}
},
"monitor": {
"description": "Monitor options",
"type": "object",
"required": [
"index"
],
"properties": {
"index": {
"description": "Komorebi monitor index of the monitor on which to render the bar",
"type": "integer",
"format": "uint",
"minimum": 0.0
},
"work_area_offset": {
"description": "Automatically apply a work area offset for this monitor to accommodate the bar",
"type": "object",
"required": [
"bottom",
"left",
"right",
"top"
],
"properties": {
"bottom": {
"description": "The bottom point in a Win32 Rect",
"type": "integer",
"format": "int32"
},
"left": {
"description": "The left point in a Win32 Rect",
"type": "integer",
"format": "int32"
},
"right": {
"description": "The right point in a Win32 Rect",
"type": "integer",
"format": "int32"
},
"top": {
"description": "The top point in a Win32 Rect",
"type": "integer",
"format": "int32"
}
}
}
}
},
"right_widgets": {
"description": "Right side widgets (ordered left-to-right)",
"type": "array",
"items": {
"oneOf": [
{
"type": "object",
"required": [
"Battery"
],
"properties": {
"Battery": {
"type": "object",
"required": [
"enable"
],
"properties": {
"enable": {
"description": "Enable the Battery widget",
"type": "boolean"
}
}
}
},
"additionalProperties": false
},
{
"type": "object",
"required": [
"Date"
],
"properties": {
"Date": {
"type": "object",
"required": [
"enable",
"format"
],
"properties": {
"enable": {
"description": "Enable the Date widget",
"type": "boolean"
},
"format": {
"description": "Set the Date format",
"oneOf": [
{
"description": "Month/Date/Year format (09/08/24)",
"type": "string",
"enum": [
"MonthDateYear"
]
},
{
"description": "Year-Month-Date format (2024-09-08)",
"type": "string",
"enum": [
"YearMonthDate"
]
},
{
"description": "Date-Month-Year format (8-Sep-2024)",
"type": "string",
"enum": [
"DateMonthYear"
]
},
{
"description": "Day Date Month Year format (8 September 2024)",
"type": "string",
"enum": [
"DayDateMonthYear"
]
},
{
"description": "Custom format (https://docs.rs/chrono/latest/chrono/format/strftime/index.html)",
"type": "object",
"required": [
"Custom"
],
"properties": {
"Custom": {
"type": "string"
}
},
"additionalProperties": false
}
]
}
}
}
},
"additionalProperties": false
},
{
"type": "object",
"required": [
"Komorebi"
],
"properties": {
"Komorebi": {
"type": "object",
"required": [
"focused_window",
"layout",
"workspaces"
],
"properties": {
"focused_window": {
"description": "Configure the Focused Window widget",
"type": "object",
"required": [
"enable",
"show_icon"
],
"properties": {
"enable": {
"description": "Enable the Komorebi Focused Window widget",
"type": "boolean"
},
"show_icon": {
"description": "Show the icon of the currently focused window",
"type": "boolean"
}
}
},
"layout": {
"description": "Configure the Layout widget",
"type": "object",
"required": [
"enable"
],
"properties": {
"enable": {
"description": "Enable the Komorebi Layout widget",
"type": "boolean"
}
}
},
"workspaces": {
"description": "Configure the Workspaces widget",
"type": "object",
"required": [
"enable",
"hide_empty_workspaces"
],
"properties": {
"enable": {
"description": "Enable the Komorebi Workspaces widget",
"type": "boolean"
},
"hide_empty_workspaces": {
"description": "Hide workspaces without any windows",
"type": "boolean"
}
}
}
}
}
},
"additionalProperties": false
},
{
"type": "object",
"required": [
"Media"
],
"properties": {
"Media": {
"type": "object",
"required": [
"enable"
],
"properties": {
"enable": {
"description": "Enable the Media widget",
"type": "boolean"
}
}
}
},
"additionalProperties": false
},
{
"type": "object",
"required": [
"Memory"
],
"properties": {
"Memory": {
"type": "object",
"required": [
"enable"
],
"properties": {
"enable": {
"description": "Enable the Memory widget",
"type": "boolean"
}
}
}
},
"additionalProperties": false
},
{
"type": "object",
"required": [
"Network"
],
"properties": {
"Network": {
"type": "object",
"required": [
"enable",
"show_data"
],
"properties": {
"enable": {
"description": "Enable the Network widget",
"type": "boolean"
},
"show_data": {
"description": "Show network transfer data",
"type": "boolean"
}
}
}
},
"additionalProperties": false
},
{
"type": "object",
"required": [
"Storage"
],
"properties": {
"Storage": {
"type": "object",
"required": [
"enable"
],
"properties": {
"enable": {
"description": "Enable the Storage widget",
"type": "boolean"
}
}
}
},
"additionalProperties": false
},
{
"type": "object",
"required": [
"Time"
],
"properties": {
"Time": {
"type": "object",
"required": [
"enable",
"format"
],
"properties": {
"enable": {
"description": "Enable the Time widget",
"type": "boolean"
},
"format": {
"description": "Set the Time format",
"oneOf": [
{
"description": "Twelve-hour format (with seconds)",
"type": "string",
"enum": [
"TwelveHour"
]
},
{
"description": "Twenty-four-hour format (with seconds)",
"type": "string",
"enum": [
"TwentyFourHour"
]
},
{
"description": "Custom format (https://docs.rs/chrono/latest/chrono/format/strftime/index.html)",
"type": "object",
"required": [
"Custom"
],
"properties": {
"Custom": {
"type": "string"
}
},
"additionalProperties": false
}
]
}
}
}
},
"additionalProperties": false
}
]
}
},
"theme": {
"description": "Theme",
"oneOf": [
{
"description": "Default egui theme",
"type": "string",
"enum": [
"Default"
]
},
{
"description": "Catpuccin Frappe",
"type": "string",
"enum": [
"CatppuccinFrappe"
]
},
{
"description": "Catpuccin Macchiato",
"type": "string",
"enum": [
"CatppuccinMacchiato"
]
},
{
"description": "Catpuccin Mocha",
"type": "string",
"enum": [
"CatppuccinMocha"
]
}
]
},
"viewport": {
"description": "Viewport options (see: https://docs.rs/egui/latest/egui/viewport/struct.ViewportBuilder.html)",
"type": "object",
"required": [
"inner_size",
"position"
],
"properties": {
"inner_size": {
"description": "The desired size of the bar from the starting position (usually monitor width x desired height)",
"type": "object",
"required": [
"x",
"y"
],
"properties": {
"x": {
"description": "X coordinate",
"type": "number",
"format": "float"
},
"y": {
"description": "Y coordinate",
"type": "number",
"format": "float"
}
}
},
"position": {
"description": "The desired starting position of the bar (0,0 = top left of the screen)",
"type": "object",
"required": [
"x",
"y"
],
"properties": {
"x": {
"description": "X coordinate",
"type": "number",
"format": "float"
},
"y": {
"description": "Y coordinate",
"type": "number",
"format": "float"
}
}
}
}
}
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment