mirror of
https://github.com/LGUG2Z/komorebi.git
synced 2026-01-11 14:40:25 +01:00
docs(schema): ensure every enum variant has a renderable title
This commit is contained in:
@@ -5,8 +5,9 @@ Check schema.json and schema.bar.json for missing docstrings and map them to Rus
|
|||||||
This script analyzes the generated JSON schemas and identifies:
|
This script analyzes the generated JSON schemas and identifies:
|
||||||
1. Type definitions ($defs) missing top-level descriptions
|
1. Type definitions ($defs) missing top-level descriptions
|
||||||
2. Enum variants missing descriptions (in oneOf/anyOf)
|
2. Enum variants missing descriptions (in oneOf/anyOf)
|
||||||
3. Struct properties missing descriptions
|
3. Enum variants missing titles (object variants in oneOf/anyOf)
|
||||||
4. Top-level schema properties missing descriptions
|
4. Struct properties missing descriptions
|
||||||
|
5. Top-level schema properties missing descriptions
|
||||||
|
|
||||||
For each missing docstring, it attempts to find the corresponding Rust source
|
For each missing docstring, it attempts to find the corresponding Rust source
|
||||||
file and line number where the docstring should be added.
|
file and line number where the docstring should be added.
|
||||||
@@ -23,7 +24,7 @@ from typing import Optional
|
|||||||
@dataclass
|
@dataclass
|
||||||
class MissingDoc:
|
class MissingDoc:
|
||||||
type_name: str
|
type_name: str
|
||||||
kind: str # "type", "variant", "property"
|
kind: str # "type", "variant", "property", "variant_title"
|
||||||
item_name: Optional[str] # variant or property name
|
item_name: Optional[str] # variant or property name
|
||||||
rust_file: Optional[str] = None
|
rust_file: Optional[str] = None
|
||||||
rust_line: Optional[int] = None
|
rust_line: Optional[int] = None
|
||||||
@@ -39,6 +40,8 @@ class MissingDoc:
|
|||||||
return f"[TYPE] {self.type_name}{location}"
|
return f"[TYPE] {self.type_name}{location}"
|
||||||
elif self.kind == "variant":
|
elif self.kind == "variant":
|
||||||
return f"[VARIANT] {self.type_name}::{self.item_name}{location}"
|
return f"[VARIANT] {self.type_name}::{self.item_name}{location}"
|
||||||
|
elif self.kind == "variant_title":
|
||||||
|
return f"[VARIANT_TITLE] {self.type_name}::{self.item_name}{location}"
|
||||||
else:
|
else:
|
||||||
return f"[PROPERTY] {self.type_name}.{self.item_name}{location}"
|
return f"[PROPERTY] {self.type_name}.{self.item_name}{location}"
|
||||||
|
|
||||||
@@ -62,7 +65,7 @@ def find_rust_definition(
|
|||||||
rf"pub\s+enum\s+{type_name}\b",
|
rf"pub\s+enum\s+{type_name}\b",
|
||||||
rf"pub\s+struct\s+{type_name}\b",
|
rf"pub\s+struct\s+{type_name}\b",
|
||||||
]
|
]
|
||||||
elif kind == "variant":
|
elif kind in ("variant", "variant_title"):
|
||||||
patterns = [
|
patterns = [
|
||||||
rf"^\s*{re.escape(item_name)}\s*[,\(\{{]",
|
rf"^\s*{re.escape(item_name)}\s*[,\(\{{]",
|
||||||
rf"^\s*{re.escape(item_name)}\s*$",
|
rf"^\s*{re.escape(item_name)}\s*$",
|
||||||
@@ -83,7 +86,7 @@ def find_rust_definition(
|
|||||||
if re.search(pattern, line):
|
if re.search(pattern, line):
|
||||||
return str(rust_file), i + 1
|
return str(rust_file), i + 1
|
||||||
|
|
||||||
elif kind in ("variant", "property"):
|
elif kind in ("variant", "variant_title", "property"):
|
||||||
parent_pattern = rf"pub\s+(?:enum|struct)\s+{type_name}\b"
|
parent_pattern = rf"pub\s+(?:enum|struct)\s+{type_name}\b"
|
||||||
in_type = False
|
in_type = False
|
||||||
brace_count = 0
|
brace_count = 0
|
||||||
@@ -112,6 +115,39 @@ def find_rust_definition(
|
|||||||
return None, None
|
return None, None
|
||||||
|
|
||||||
|
|
||||||
|
def _get_variant_identifier(variant: dict) -> str:
|
||||||
|
"""Extract a meaningful identifier for a variant.
|
||||||
|
|
||||||
|
Tries to find the best identifier by checking:
|
||||||
|
1. A top-level const value (e.g., {"const": "Linear"})
|
||||||
|
2. A property with a const value (e.g., {"kind": {"const": "Bar"}})
|
||||||
|
3. The first required property name
|
||||||
|
4. The type field
|
||||||
|
5. Falls back to "unknown"
|
||||||
|
"""
|
||||||
|
# Check for top-level const value (simple enum variant)
|
||||||
|
if "const" in variant:
|
||||||
|
return str(variant["const"])
|
||||||
|
|
||||||
|
properties = variant.get("properties", {})
|
||||||
|
|
||||||
|
# Check for a property with a const value (common pattern for tagged enums)
|
||||||
|
for prop_name, prop_def in properties.items():
|
||||||
|
if isinstance(prop_def, dict) and "const" in prop_def:
|
||||||
|
return str(prop_def["const"])
|
||||||
|
|
||||||
|
# Fall back to first required property name
|
||||||
|
required = variant.get("required", [])
|
||||||
|
if required:
|
||||||
|
return str(required[0])
|
||||||
|
|
||||||
|
# Fall back to type
|
||||||
|
if "type" in variant:
|
||||||
|
return str(variant["type"])
|
||||||
|
|
||||||
|
return "unknown"
|
||||||
|
|
||||||
|
|
||||||
def check_type_description(type_name: str, type_def: dict) -> list[MissingDoc]:
|
def check_type_description(type_name: str, type_def: dict) -> list[MissingDoc]:
|
||||||
"""Check if a type definition has proper documentation."""
|
"""Check if a type definition has proper documentation."""
|
||||||
missing = []
|
missing = []
|
||||||
@@ -150,6 +186,19 @@ def check_type_description(type_name: str, type_def: dict) -> list[MissingDoc]:
|
|||||||
MissingDoc(type_name, "variant", str(prop_name), None, None)
|
MissingDoc(type_name, "variant", str(prop_name), None, None)
|
||||||
)
|
)
|
||||||
|
|
||||||
|
# Case 4: Object variant missing title (needed for schema UI display)
|
||||||
|
# Object variants should have a title or const for proper display in editors
|
||||||
|
if (
|
||||||
|
"properties" in variant
|
||||||
|
and "title" not in variant
|
||||||
|
and "const" not in variant
|
||||||
|
):
|
||||||
|
# Try to find a good identifier for the variant (for display only)
|
||||||
|
variant_id = _get_variant_identifier(variant)
|
||||||
|
missing.append(
|
||||||
|
MissingDoc(type_name, "variant_title", str(variant_id), None, None)
|
||||||
|
)
|
||||||
|
|
||||||
# Check anyOf variants - check each variant individually
|
# Check anyOf variants - check each variant individually
|
||||||
elif "anyOf" in type_def:
|
elif "anyOf" in type_def:
|
||||||
# anyOf types should have a top-level description
|
# anyOf types should have a top-level description
|
||||||
@@ -180,6 +229,17 @@ def check_type_description(type_name: str, type_def: dict) -> list[MissingDoc]:
|
|||||||
MissingDoc(type_name, "variant", str(variant_id), None, None)
|
MissingDoc(type_name, "variant", str(variant_id), None, None)
|
||||||
)
|
)
|
||||||
|
|
||||||
|
# Check for missing title on object variants in anyOf
|
||||||
|
if (
|
||||||
|
"properties" in variant
|
||||||
|
and "title" not in variant
|
||||||
|
and "const" not in variant
|
||||||
|
):
|
||||||
|
variant_id = _get_variant_identifier(variant)
|
||||||
|
missing.append(
|
||||||
|
MissingDoc(type_name, "variant_title", str(variant_id), None, None)
|
||||||
|
)
|
||||||
|
|
||||||
# Check simple string enums (no oneOf means no variant descriptions possible in schema)
|
# Check simple string enums (no oneOf means no variant descriptions possible in schema)
|
||||||
elif "enum" in type_def:
|
elif "enum" in type_def:
|
||||||
if not has_top_description:
|
if not has_top_description:
|
||||||
@@ -285,11 +345,13 @@ def print_results(all_missing: list[MissingDoc], display_name: str) -> None:
|
|||||||
|
|
||||||
type_count = sum(1 for d in all_missing if d.kind == "type")
|
type_count = sum(1 for d in all_missing if d.kind == "type")
|
||||||
variant_count = sum(1 for d in all_missing if d.kind == "variant")
|
variant_count = sum(1 for d in all_missing if d.kind == "variant")
|
||||||
|
variant_title_count = sum(1 for d in all_missing if d.kind == "variant_title")
|
||||||
prop_count = sum(1 for d in all_missing if d.kind == "property")
|
prop_count = sum(1 for d in all_missing if d.kind == "property")
|
||||||
|
|
||||||
print(f"\nTotal: {len(all_missing)} missing docstrings")
|
print(f"\nTotal: {len(all_missing)} missing docstrings/titles")
|
||||||
print(f" - {type_count} types")
|
print(f" - {type_count} types")
|
||||||
print(f" - {variant_count} variants")
|
print(f" - {variant_count} variants")
|
||||||
|
print(f" - {variant_title_count} variant titles")
|
||||||
print(f" - {prop_count} properties")
|
print(f" - {prop_count} properties")
|
||||||
|
|
||||||
# Print by file
|
# Print by file
|
||||||
@@ -311,8 +373,7 @@ def print_results(all_missing: list[MissingDoc], display_name: str) -> None:
|
|||||||
|
|
||||||
|
|
||||||
def main():
|
def main():
|
||||||
script_dir = Path(__file__).parent
|
project_root = Path.cwd()
|
||||||
project_root = script_dir.parent
|
|
||||||
|
|
||||||
# Define schemas to check with their respective search paths
|
# Define schemas to check with their respective search paths
|
||||||
schemas = [
|
schemas = [
|
||||||
|
|||||||
4
justfile
4
justfile
@@ -78,8 +78,8 @@ deadlock $RUST_LOG="trace":
|
|||||||
docgen starlight:
|
docgen starlight:
|
||||||
rm {{ starlight }}/src/data/cli/windows/*.md
|
rm {{ starlight }}/src/data/cli/windows/*.md
|
||||||
cargo run --package komorebic -- docgen --output {{ starlight }}/src/data/cli/windows
|
cargo run --package komorebic -- docgen --output {{ starlight }}/src/data/cli/windows
|
||||||
schemars-docgen ./schema.json --output {{ starlight }}/src/content/docs/reference/komorebi-windows.mdx --format mdx --title "komorebi.json (Windows)" --description "komorebi for Windows configuration schema reference"
|
schemars-docgen ./schema.json --output {{ starlight }}/src/content/docs/reference/komorebi-windows.mdx --title "komorebi.json (Windows)" --description "komorebi for Windows configuration schema reference"
|
||||||
schemars-docgen ./schema.bar.json --output {{ starlight }}/src/content/docs/reference/bar-windows.mdx --format mdx --title "komorebi.bar.json (Windows)" --description "komorebi-bar for Windows configuration schema reference"
|
schemars-docgen ./schema.bar.json --output {{ starlight }}/src/content/docs/reference/bar-windows.mdx --title "komorebi.bar.json (Windows)" --description "komorebi-bar for Windows configuration schema reference"
|
||||||
|
|
||||||
jsonschema:
|
jsonschema:
|
||||||
cargo run --package komorebic -- static-config-schema > schema.json
|
cargo run --package komorebic -- static-config-schema > schema.json
|
||||||
|
|||||||
@@ -571,6 +571,7 @@ impl From<Position> for Pos2 {
|
|||||||
/// Komorebi bar theme
|
/// Komorebi bar theme
|
||||||
pub enum KomobarTheme {
|
pub enum KomobarTheme {
|
||||||
/// Theme from catppuccin-egui
|
/// Theme from catppuccin-egui
|
||||||
|
#[cfg_attr(feature = "schemars", schemars(title = "Catppuccin"))]
|
||||||
Catppuccin {
|
Catppuccin {
|
||||||
/// Name of the Catppuccin theme (theme previews: https://github.com/catppuccin/catppuccin)
|
/// Name of the Catppuccin theme (theme previews: https://github.com/catppuccin/catppuccin)
|
||||||
name: komorebi_themes::Catppuccin,
|
name: komorebi_themes::Catppuccin,
|
||||||
@@ -582,6 +583,7 @@ pub enum KomobarTheme {
|
|||||||
auto_select_text: Option<komorebi_themes::CatppuccinValue>,
|
auto_select_text: Option<komorebi_themes::CatppuccinValue>,
|
||||||
},
|
},
|
||||||
/// Theme from base16-egui-themes
|
/// Theme from base16-egui-themes
|
||||||
|
#[cfg_attr(feature = "schemars", schemars(title = "Base16"))]
|
||||||
Base16 {
|
Base16 {
|
||||||
/// Name of the Base16 theme (theme previews: https://tinted-theming.github.io/tinted-gallery/)
|
/// Name of the Base16 theme (theme previews: https://tinted-theming.github.io/tinted-gallery/)
|
||||||
name: komorebi_themes::Base16,
|
name: komorebi_themes::Base16,
|
||||||
@@ -593,6 +595,7 @@ pub enum KomobarTheme {
|
|||||||
auto_select_text: Option<komorebi_themes::Base16Value>,
|
auto_select_text: Option<komorebi_themes::Base16Value>,
|
||||||
},
|
},
|
||||||
/// Custom Base16 theme
|
/// Custom Base16 theme
|
||||||
|
#[cfg_attr(feature = "schemars", schemars(title = "Custom"))]
|
||||||
Custom {
|
Custom {
|
||||||
/// Colours of the custom Base16 theme palette
|
/// Colours of the custom Base16 theme palette
|
||||||
colours: Box<komorebi_themes::Base16ColourPalette>,
|
colours: Box<komorebi_themes::Base16ColourPalette>,
|
||||||
@@ -669,9 +672,10 @@ pub enum DisplayFormat {
|
|||||||
}
|
}
|
||||||
|
|
||||||
macro_rules! extend_enum {
|
macro_rules! extend_enum {
|
||||||
($existing_enum:ident, $new_enum:ident, { $($(#[$meta:meta])* $variant:ident),* $(,)? }) => {
|
($(#[$type_meta:meta])* $existing_enum:ident, $new_enum:ident, { $($(#[$meta:meta])* $variant:ident),* $(,)? }) => {
|
||||||
#[derive(Copy, Clone, Debug, serde::Serialize, serde::Deserialize, PartialEq)]
|
#[derive(Copy, Clone, Debug, serde::Serialize, serde::Deserialize, PartialEq)]
|
||||||
#[cfg_attr(feature = "schemars", derive(schemars::JsonSchema))]
|
#[cfg_attr(feature = "schemars", derive(schemars::JsonSchema))]
|
||||||
|
$(#[$type_meta])*
|
||||||
pub enum $new_enum {
|
pub enum $new_enum {
|
||||||
// Add new variants
|
// Add new variants
|
||||||
$(
|
$(
|
||||||
@@ -692,7 +696,9 @@ macro_rules! extend_enum {
|
|||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
extend_enum!(DisplayFormat, WorkspacesDisplayFormat, {
|
extend_enum!(
|
||||||
|
/// Workspaces display format
|
||||||
|
DisplayFormat, WorkspacesDisplayFormat, {
|
||||||
/// Show all icons only
|
/// Show all icons only
|
||||||
AllIcons,
|
AllIcons,
|
||||||
/// Show both all icons and text
|
/// Show both all icons and text
|
||||||
|
|||||||
@@ -30,12 +30,16 @@ static SHOW_KOMOREBI_LAYOUT_OPTIONS: AtomicUsize = AtomicUsize::new(0);
|
|||||||
/// Grouping
|
/// Grouping
|
||||||
pub enum Grouping {
|
pub enum Grouping {
|
||||||
/// No grouping is applied
|
/// No grouping is applied
|
||||||
|
#[cfg_attr(feature = "schemars", schemars(title = "None"))]
|
||||||
None,
|
None,
|
||||||
/// Widgets are grouped as a whole
|
/// Widgets are grouped as a whole
|
||||||
|
#[cfg_attr(feature = "schemars", schemars(title = "Bar"))]
|
||||||
Bar(GroupingConfig),
|
Bar(GroupingConfig),
|
||||||
/// Widgets are grouped by alignment
|
/// Widgets are grouped by alignment
|
||||||
|
#[cfg_attr(feature = "schemars", schemars(title = "Alignment"))]
|
||||||
Alignment(GroupingConfig),
|
Alignment(GroupingConfig),
|
||||||
/// Widgets are grouped individually
|
/// Widgets are grouped individually
|
||||||
|
#[cfg_attr(feature = "schemars", schemars(title = "Widget"))]
|
||||||
Widget(GroupingConfig),
|
Widget(GroupingConfig),
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -396,7 +400,7 @@ pub enum GroupingStyle {
|
|||||||
#[serde(untagged)]
|
#[serde(untagged)]
|
||||||
/// Rounding configuration
|
/// Rounding configuration
|
||||||
pub enum RoundingConfig {
|
pub enum RoundingConfig {
|
||||||
/// All 4 corners are the same
|
/// All 4 corners are the same
|
||||||
Same(f32),
|
Same(f32),
|
||||||
/// All 4 corners are custom. Order: NW, NE, SW, SE
|
/// All 4 corners are custom. Order: NW, NE, SW, SE
|
||||||
Individual([f32; 4]),
|
Individual([f32; 4]),
|
||||||
|
|||||||
@@ -116,8 +116,10 @@ pub enum DateFormat {
|
|||||||
/// Day Date Month Year format (8 September 2024)
|
/// Day Date Month Year format (8 September 2024)
|
||||||
DayDateMonthYear,
|
DayDateMonthYear,
|
||||||
/// Custom format (https://docs.rs/chrono/latest/chrono/format/strftime/index.html)
|
/// Custom format (https://docs.rs/chrono/latest/chrono/format/strftime/index.html)
|
||||||
|
#[cfg_attr(feature = "schemars", schemars(title = "Custom"))]
|
||||||
Custom(String),
|
Custom(String),
|
||||||
/// Custom format with modifiers
|
/// Custom format with modifiers
|
||||||
|
#[cfg_attr(feature = "schemars", schemars(title = "CustomModifiers"))]
|
||||||
CustomModifiers(CustomModifiers),
|
CustomModifiers(CustomModifiers),
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -29,6 +29,7 @@ use std::fmt::Formatter;
|
|||||||
/// Komorebi layout kind
|
/// Komorebi layout kind
|
||||||
pub enum KomorebiLayout {
|
pub enum KomorebiLayout {
|
||||||
/// Predefined layout
|
/// Predefined layout
|
||||||
|
#[cfg_attr(feature = "schemars", schemars(title = "Default"))]
|
||||||
Default(komorebi_client::DefaultLayout),
|
Default(komorebi_client::DefaultLayout),
|
||||||
/// Monocle mode
|
/// Monocle mode
|
||||||
Monocle,
|
Monocle,
|
||||||
|
|||||||
@@ -135,6 +135,7 @@ pub enum TimeFormat {
|
|||||||
/// Twenty-four-hour format displayed as a binary clock with rectangles (with seconds) (https://en.wikipedia.org/wiki/Binary_clock)
|
/// Twenty-four-hour format displayed as a binary clock with rectangles (with seconds) (https://en.wikipedia.org/wiki/Binary_clock)
|
||||||
BinaryRectangle,
|
BinaryRectangle,
|
||||||
/// Custom format (https://docs.rs/chrono/latest/chrono/format/strftime/index.html)
|
/// Custom format (https://docs.rs/chrono/latest/chrono/format/strftime/index.html)
|
||||||
|
#[cfg_attr(feature = "schemars", schemars(title = "Custom"))]
|
||||||
Custom(String),
|
Custom(String),
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -37,28 +37,40 @@ pub trait BarWidget {
|
|||||||
/// Widget configuration
|
/// Widget configuration
|
||||||
pub enum WidgetConfig {
|
pub enum WidgetConfig {
|
||||||
/// Applications widget configuration
|
/// Applications widget configuration
|
||||||
|
#[cfg_attr(feature = "schemars", schemars(title = "Applications"))]
|
||||||
Applications(ApplicationsConfig),
|
Applications(ApplicationsConfig),
|
||||||
/// Battery widget configuration
|
/// Battery widget configuration
|
||||||
|
#[cfg_attr(feature = "schemars", schemars(title = "Battery"))]
|
||||||
Battery(BatteryConfig),
|
Battery(BatteryConfig),
|
||||||
/// CPU widget configuration
|
/// CPU widget configuration
|
||||||
|
#[cfg_attr(feature = "schemars", schemars(title = "Cpu"))]
|
||||||
Cpu(CpuConfig),
|
Cpu(CpuConfig),
|
||||||
/// Date widget configuration
|
/// Date widget configuration
|
||||||
|
#[cfg_attr(feature = "schemars", schemars(title = "Date"))]
|
||||||
Date(DateConfig),
|
Date(DateConfig),
|
||||||
/// Keyboard widget configuration
|
/// Keyboard widget configuration
|
||||||
|
#[cfg_attr(feature = "schemars", schemars(title = "Keyboard"))]
|
||||||
Keyboard(KeyboardConfig),
|
Keyboard(KeyboardConfig),
|
||||||
/// Komorebi widget configuration
|
/// Komorebi widget configuration
|
||||||
|
#[cfg_attr(feature = "schemars", schemars(title = "Komorebi"))]
|
||||||
Komorebi(KomorebiConfig),
|
Komorebi(KomorebiConfig),
|
||||||
/// Media widget configuration
|
/// Media widget configuration
|
||||||
|
#[cfg_attr(feature = "schemars", schemars(title = "Media"))]
|
||||||
Media(MediaConfig),
|
Media(MediaConfig),
|
||||||
/// Memory widget configuration
|
/// Memory widget configuration
|
||||||
|
#[cfg_attr(feature = "schemars", schemars(title = "Memory"))]
|
||||||
Memory(MemoryConfig),
|
Memory(MemoryConfig),
|
||||||
/// Network widget configuration
|
/// Network widget configuration
|
||||||
|
#[cfg_attr(feature = "schemars", schemars(title = "Network"))]
|
||||||
Network(NetworkConfig),
|
Network(NetworkConfig),
|
||||||
/// Storage widget configuration
|
/// Storage widget configuration
|
||||||
|
#[cfg_attr(feature = "schemars", schemars(title = "Storage"))]
|
||||||
Storage(StorageConfig),
|
Storage(StorageConfig),
|
||||||
/// Time widget configuration
|
/// Time widget configuration
|
||||||
|
#[cfg_attr(feature = "schemars", schemars(title = "Time"))]
|
||||||
Time(TimeConfig),
|
Time(TimeConfig),
|
||||||
/// Update widget configuration
|
/// Update widget configuration
|
||||||
|
#[cfg_attr(feature = "schemars", schemars(title = "Update"))]
|
||||||
Update(UpdateConfig),
|
Update(UpdateConfig),
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -308,13 +308,13 @@ impl Base16Value {
|
|||||||
#[derive(Copy, Clone, Debug, Serialize, Deserialize, JsonSchema, Display, PartialEq)]
|
#[derive(Copy, Clone, Debug, Serialize, Deserialize, JsonSchema, Display, PartialEq)]
|
||||||
/// Catppuccin palette
|
/// Catppuccin palette
|
||||||
pub enum Catppuccin {
|
pub enum Catppuccin {
|
||||||
/// Frappe
|
/// Frappe (https://catppuccin.com/palette#flavor-frappe)
|
||||||
Frappe,
|
Frappe,
|
||||||
/// Latte
|
/// Latte (https://catppuccin.com/palette#flavor-latte)
|
||||||
Latte,
|
Latte,
|
||||||
/// Macchiato
|
/// Macchiato (https://catppuccin.com/palette#flavor-macchiato)
|
||||||
Macchiato,
|
Macchiato,
|
||||||
/// Mocha
|
/// Mocha (https://catppuccin.com/palette#flavor-mocha)
|
||||||
Mocha,
|
Mocha,
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -72,6 +72,7 @@ pub enum AnimationStyle {
|
|||||||
EaseOutBounce,
|
EaseOutBounce,
|
||||||
/// Ease in out bounce
|
/// Ease in out bounce
|
||||||
EaseInOutBounce,
|
EaseInOutBounce,
|
||||||
|
#[cfg_attr(feature = "schemars", schemars(title = "CubicBezier"))]
|
||||||
#[value(skip)]
|
#[value(skip)]
|
||||||
/// Custom Cubic Bézier function
|
/// Custom Cubic Bézier function
|
||||||
CubicBezier(f64, f64, f64, f64),
|
CubicBezier(f64, f64, f64, f64),
|
||||||
|
|||||||
@@ -663,12 +663,15 @@ pub struct StaticConfig {
|
|||||||
/// Animations configuration options
|
/// Animations configuration options
|
||||||
pub struct AnimationsConfig {
|
pub struct AnimationsConfig {
|
||||||
/// Enable or disable animations
|
/// Enable or disable animations
|
||||||
|
#[cfg_attr(feature = "schemars", schemars(extend("default" = PerAnimationPrefixConfig::Global(false))))]
|
||||||
pub enabled: PerAnimationPrefixConfig<bool>,
|
pub enabled: PerAnimationPrefixConfig<bool>,
|
||||||
/// Set the animation duration in ms
|
/// Set the animation duration in ms
|
||||||
#[serde(skip_serializing_if = "Option::is_none")]
|
#[serde(skip_serializing_if = "Option::is_none")]
|
||||||
|
#[cfg_attr(feature = "schemars", schemars(extend("default" = PerAnimationPrefixConfig::Global(250))))]
|
||||||
pub duration: Option<PerAnimationPrefixConfig<u64>>,
|
pub duration: Option<PerAnimationPrefixConfig<u64>>,
|
||||||
/// Set the animation style
|
/// Set the animation style
|
||||||
#[serde(skip_serializing_if = "Option::is_none")]
|
#[serde(skip_serializing_if = "Option::is_none")]
|
||||||
|
#[cfg_attr(feature = "schemars", schemars(extend("default" = PerAnimationPrefixConfig::Global(AnimationStyle::Linear))))]
|
||||||
pub style: Option<PerAnimationPrefixConfig<AnimationStyle>>,
|
pub style: Option<PerAnimationPrefixConfig<AnimationStyle>>,
|
||||||
/// Set the animation FPS
|
/// Set the animation FPS
|
||||||
#[serde(skip_serializing_if = "Option::is_none")]
|
#[serde(skip_serializing_if = "Option::is_none")]
|
||||||
@@ -682,6 +685,7 @@ pub struct AnimationsConfig {
|
|||||||
/// Komorebi theme
|
/// Komorebi theme
|
||||||
pub enum KomorebiTheme {
|
pub enum KomorebiTheme {
|
||||||
/// A theme from catppuccin-egui
|
/// A theme from catppuccin-egui
|
||||||
|
#[cfg_attr(feature = "schemars", schemars(title = "Catppuccin"))]
|
||||||
Catppuccin {
|
Catppuccin {
|
||||||
/// Name of the Catppuccin theme (theme previews: https://github.com/catppuccin/catppuccin)
|
/// Name of the Catppuccin theme (theme previews: https://github.com/catppuccin/catppuccin)
|
||||||
name: komorebi_themes::Catppuccin,
|
name: komorebi_themes::Catppuccin,
|
||||||
@@ -727,6 +731,7 @@ pub enum KomorebiTheme {
|
|||||||
bar_accent: Option<komorebi_themes::CatppuccinValue>,
|
bar_accent: Option<komorebi_themes::CatppuccinValue>,
|
||||||
},
|
},
|
||||||
/// A theme from base16-egui-themes
|
/// A theme from base16-egui-themes
|
||||||
|
#[cfg_attr(feature = "schemars", schemars(title = "Base16"))]
|
||||||
Base16 {
|
Base16 {
|
||||||
/// Name of the Base16 theme (theme previews: https://tinted-theming.github.io/tinted-gallery/)
|
/// Name of the Base16 theme (theme previews: https://tinted-theming.github.io/tinted-gallery/)
|
||||||
name: komorebi_themes::Base16,
|
name: komorebi_themes::Base16,
|
||||||
@@ -772,6 +777,7 @@ pub enum KomorebiTheme {
|
|||||||
bar_accent: Option<komorebi_themes::Base16Value>,
|
bar_accent: Option<komorebi_themes::Base16Value>,
|
||||||
},
|
},
|
||||||
/// A custom Base16 theme
|
/// A custom Base16 theme
|
||||||
|
#[cfg_attr(feature = "schemars", schemars(title = "Custom"))]
|
||||||
Custom {
|
Custom {
|
||||||
/// Colours of the custom Base16 theme palette
|
/// Colours of the custom Base16 theme palette
|
||||||
colours: Box<komorebi_themes::Base16ColourPalette>,
|
colours: Box<komorebi_themes::Base16ColourPalette>,
|
||||||
|
|||||||
@@ -305,8 +305,10 @@ impl RenderDispatcher for TransparencyRenderDispatcher {
|
|||||||
/// Aspect ratio for temporarily floating windows
|
/// Aspect ratio for temporarily floating windows
|
||||||
pub enum AspectRatio {
|
pub enum AspectRatio {
|
||||||
/// Predefined aspect ratio
|
/// Predefined aspect ratio
|
||||||
|
#[cfg_attr(feature = "schemars", schemars(title = "Predefined"))]
|
||||||
Predefined(PredefinedAspectRatio),
|
Predefined(PredefinedAspectRatio),
|
||||||
/// Custom W:H aspect ratio
|
/// Custom W:H aspect ratio
|
||||||
|
#[cfg_attr(feature = "schemars", schemars(title = "Custom"))]
|
||||||
Custom(i32, i32),
|
Custom(i32, i32),
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -345,6 +345,7 @@
|
|||||||
"const": "EaseInOutBounce"
|
"const": "EaseInOutBounce"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
|
"title": "CubicBezier",
|
||||||
"description": "Custom Cubic Bézier function",
|
"description": "Custom Cubic Bézier function",
|
||||||
"type": "object",
|
"type": "object",
|
||||||
"properties": {
|
"properties": {
|
||||||
@@ -2154,22 +2155,22 @@
|
|||||||
"description": "Catppuccin palette",
|
"description": "Catppuccin palette",
|
||||||
"oneOf": [
|
"oneOf": [
|
||||||
{
|
{
|
||||||
"description": "Frappe",
|
"description": "Frappe (https://catppuccin.com/palette#flavor-frappe)",
|
||||||
"type": "string",
|
"type": "string",
|
||||||
"const": "Frappe"
|
"const": "Frappe"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"description": "Latte",
|
"description": "Latte (https://catppuccin.com/palette#flavor-latte)",
|
||||||
"type": "string",
|
"type": "string",
|
||||||
"const": "Latte"
|
"const": "Latte"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"description": "Macchiato",
|
"description": "Macchiato (https://catppuccin.com/palette#flavor-macchiato)",
|
||||||
"type": "string",
|
"type": "string",
|
||||||
"const": "Macchiato"
|
"const": "Macchiato"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"description": "Mocha",
|
"description": "Mocha (https://catppuccin.com/palette#flavor-mocha)",
|
||||||
"type": "string",
|
"type": "string",
|
||||||
"const": "Mocha"
|
"const": "Mocha"
|
||||||
}
|
}
|
||||||
@@ -2456,6 +2457,7 @@
|
|||||||
"const": "DayDateMonthYear"
|
"const": "DayDateMonthYear"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
|
"title": "Custom",
|
||||||
"description": "Custom format (https://docs.rs/chrono/latest/chrono/format/strftime/index.html)",
|
"description": "Custom format (https://docs.rs/chrono/latest/chrono/format/strftime/index.html)",
|
||||||
"type": "object",
|
"type": "object",
|
||||||
"properties": {
|
"properties": {
|
||||||
@@ -2469,6 +2471,7 @@
|
|||||||
]
|
]
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
|
"title": "CustomModifiers",
|
||||||
"description": "Custom format with modifiers",
|
"description": "Custom format with modifiers",
|
||||||
"type": "object",
|
"type": "object",
|
||||||
"properties": {
|
"properties": {
|
||||||
@@ -2517,7 +2520,7 @@
|
|||||||
"const": "UltrawideVerticalStack"
|
"const": "UltrawideVerticalStack"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"description": "Grid Layout\n\n```\n+-----+-----+ +---+---+---+ +---+---+---+ +---+---+---+\n| | | | | | | | | | | | | | |\n| | | | | | | | | | | | | +---+\n+-----+-----+ | +---+---+ +---+---+---+ +---+---| |\n| | | | | | | | | | | | | +---+\n| | | | | | | | | | | | | | |\n+-----+-----+ +---+---+---+ +---+---+---+ +---+---+---+\n 4 windows 5 windows 6 windows 7 windows\n```",
|
"description": "Grid Layout\n\n```\n+-----+-----+ +---+---+---+ +---+---+---+ +---+---+---+\n| | | | | | | | | | | | | | |\n| | | | | | | | | | | | | +---+\n+-----+-----+ | +---+---+ +---+---+---+ +---+---| |\n| | | | | | | | | | | | | +---+\n| | | | | | | | | | | | | | |\n+-----+-----+ +---+---+---+ +---+---+---+ +---+---+---+\n 4 windows 5 windows 6 windows 7 windows\n```",
|
||||||
"type": "string",
|
"type": "string",
|
||||||
"const": "Grid"
|
"const": "Grid"
|
||||||
},
|
},
|
||||||
@@ -2649,6 +2652,7 @@
|
|||||||
"description": "Grouping",
|
"description": "Grouping",
|
||||||
"oneOf": [
|
"oneOf": [
|
||||||
{
|
{
|
||||||
|
"title": "None",
|
||||||
"description": "No grouping is applied",
|
"description": "No grouping is applied",
|
||||||
"type": "object",
|
"type": "object",
|
||||||
"properties": {
|
"properties": {
|
||||||
@@ -2662,6 +2666,7 @@
|
|||||||
]
|
]
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
|
"title": "Bar",
|
||||||
"description": "Widgets are grouped as a whole",
|
"description": "Widgets are grouped as a whole",
|
||||||
"type": "object",
|
"type": "object",
|
||||||
"properties": {
|
"properties": {
|
||||||
@@ -2676,6 +2681,7 @@
|
|||||||
]
|
]
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
|
"title": "Alignment",
|
||||||
"description": "Widgets are grouped by alignment",
|
"description": "Widgets are grouped by alignment",
|
||||||
"type": "object",
|
"type": "object",
|
||||||
"properties": {
|
"properties": {
|
||||||
@@ -2690,6 +2696,7 @@
|
|||||||
]
|
]
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
|
"title": "Widget",
|
||||||
"description": "Widgets are grouped individually",
|
"description": "Widgets are grouped individually",
|
||||||
"type": "object",
|
"type": "object",
|
||||||
"properties": {
|
"properties": {
|
||||||
@@ -2879,6 +2886,7 @@
|
|||||||
"description": "Komorebi bar theme",
|
"description": "Komorebi bar theme",
|
||||||
"oneOf": [
|
"oneOf": [
|
||||||
{
|
{
|
||||||
|
"title": "Catppuccin",
|
||||||
"description": "Theme from catppuccin-egui",
|
"description": "Theme from catppuccin-egui",
|
||||||
"type": "object",
|
"type": "object",
|
||||||
"properties": {
|
"properties": {
|
||||||
@@ -2930,6 +2938,7 @@
|
|||||||
]
|
]
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
|
"title": "Base16",
|
||||||
"description": "Theme from base16-egui-themes",
|
"description": "Theme from base16-egui-themes",
|
||||||
"type": "object",
|
"type": "object",
|
||||||
"properties": {
|
"properties": {
|
||||||
@@ -2981,6 +2990,7 @@
|
|||||||
]
|
]
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
|
"title": "Custom",
|
||||||
"description": "Custom Base16 theme",
|
"description": "Custom Base16 theme",
|
||||||
"type": "object",
|
"type": "object",
|
||||||
"properties": {
|
"properties": {
|
||||||
@@ -3162,6 +3172,7 @@
|
|||||||
"description": "Komorebi layout kind",
|
"description": "Komorebi layout kind",
|
||||||
"anyOf": [
|
"anyOf": [
|
||||||
{
|
{
|
||||||
|
"title": "Default",
|
||||||
"description": "Predefined layout",
|
"description": "Predefined layout",
|
||||||
"$ref": "#/$defs/DefaultLayout"
|
"$ref": "#/$defs/DefaultLayout"
|
||||||
},
|
},
|
||||||
@@ -3281,6 +3292,7 @@
|
|||||||
"description": "Komorebi theme",
|
"description": "Komorebi theme",
|
||||||
"oneOf": [
|
"oneOf": [
|
||||||
{
|
{
|
||||||
|
"title": "Catppuccin",
|
||||||
"description": "A theme from catppuccin-egui",
|
"description": "A theme from catppuccin-egui",
|
||||||
"type": "object",
|
"type": "object",
|
||||||
"properties": {
|
"properties": {
|
||||||
@@ -3419,6 +3431,7 @@
|
|||||||
]
|
]
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
|
"title": "Base16",
|
||||||
"description": "A theme from base16-egui-themes",
|
"description": "A theme from base16-egui-themes",
|
||||||
"type": "object",
|
"type": "object",
|
||||||
"properties": {
|
"properties": {
|
||||||
@@ -3557,6 +3570,7 @@
|
|||||||
]
|
]
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
|
"title": "Custom",
|
||||||
"description": "A custom Base16 theme",
|
"description": "A custom Base16 theme",
|
||||||
"type": "object",
|
"type": "object",
|
||||||
"properties": {
|
"properties": {
|
||||||
@@ -8055,6 +8069,7 @@
|
|||||||
"const": "BinaryRectangle"
|
"const": "BinaryRectangle"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
|
"title": "Custom",
|
||||||
"description": "Custom format (https://docs.rs/chrono/latest/chrono/format/strftime/index.html)",
|
"description": "Custom format (https://docs.rs/chrono/latest/chrono/format/strftime/index.html)",
|
||||||
"type": "object",
|
"type": "object",
|
||||||
"properties": {
|
"properties": {
|
||||||
@@ -8107,6 +8122,7 @@
|
|||||||
"description": "Widget configuration",
|
"description": "Widget configuration",
|
||||||
"oneOf": [
|
"oneOf": [
|
||||||
{
|
{
|
||||||
|
"title": "Applications",
|
||||||
"description": "Applications widget configuration",
|
"description": "Applications widget configuration",
|
||||||
"type": "object",
|
"type": "object",
|
||||||
"properties": {
|
"properties": {
|
||||||
@@ -8120,6 +8136,7 @@
|
|||||||
]
|
]
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
|
"title": "Battery",
|
||||||
"description": "Battery widget configuration",
|
"description": "Battery widget configuration",
|
||||||
"type": "object",
|
"type": "object",
|
||||||
"properties": {
|
"properties": {
|
||||||
@@ -8133,6 +8150,7 @@
|
|||||||
]
|
]
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
|
"title": "Cpu",
|
||||||
"description": "CPU widget configuration",
|
"description": "CPU widget configuration",
|
||||||
"type": "object",
|
"type": "object",
|
||||||
"properties": {
|
"properties": {
|
||||||
@@ -8146,6 +8164,7 @@
|
|||||||
]
|
]
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
|
"title": "Date",
|
||||||
"description": "Date widget configuration",
|
"description": "Date widget configuration",
|
||||||
"type": "object",
|
"type": "object",
|
||||||
"properties": {
|
"properties": {
|
||||||
@@ -8159,6 +8178,7 @@
|
|||||||
]
|
]
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
|
"title": "Keyboard",
|
||||||
"description": "Keyboard widget configuration",
|
"description": "Keyboard widget configuration",
|
||||||
"type": "object",
|
"type": "object",
|
||||||
"properties": {
|
"properties": {
|
||||||
@@ -8172,6 +8192,7 @@
|
|||||||
]
|
]
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
|
"title": "Komorebi",
|
||||||
"description": "Komorebi widget configuration",
|
"description": "Komorebi widget configuration",
|
||||||
"type": "object",
|
"type": "object",
|
||||||
"properties": {
|
"properties": {
|
||||||
@@ -8185,6 +8206,7 @@
|
|||||||
]
|
]
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
|
"title": "Media",
|
||||||
"description": "Media widget configuration",
|
"description": "Media widget configuration",
|
||||||
"type": "object",
|
"type": "object",
|
||||||
"properties": {
|
"properties": {
|
||||||
@@ -8198,6 +8220,7 @@
|
|||||||
]
|
]
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
|
"title": "Memory",
|
||||||
"description": "Memory widget configuration",
|
"description": "Memory widget configuration",
|
||||||
"type": "object",
|
"type": "object",
|
||||||
"properties": {
|
"properties": {
|
||||||
@@ -8211,6 +8234,7 @@
|
|||||||
]
|
]
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
|
"title": "Network",
|
||||||
"description": "Network widget configuration",
|
"description": "Network widget configuration",
|
||||||
"type": "object",
|
"type": "object",
|
||||||
"properties": {
|
"properties": {
|
||||||
@@ -8224,6 +8248,7 @@
|
|||||||
]
|
]
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
|
"title": "Storage",
|
||||||
"description": "Storage widget configuration",
|
"description": "Storage widget configuration",
|
||||||
"type": "object",
|
"type": "object",
|
||||||
"properties": {
|
"properties": {
|
||||||
@@ -8237,6 +8262,7 @@
|
|||||||
]
|
]
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
|
"title": "Time",
|
||||||
"description": "Time widget configuration",
|
"description": "Time widget configuration",
|
||||||
"type": "object",
|
"type": "object",
|
||||||
"properties": {
|
"properties": {
|
||||||
@@ -8250,6 +8276,7 @@
|
|||||||
]
|
]
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
|
"title": "Update",
|
||||||
"description": "Update widget configuration",
|
"description": "Update widget configuration",
|
||||||
"type": "object",
|
"type": "object",
|
||||||
"properties": {
|
"properties": {
|
||||||
@@ -8300,6 +8327,7 @@
|
|||||||
]
|
]
|
||||||
},
|
},
|
||||||
"WorkspacesDisplayFormat": {
|
"WorkspacesDisplayFormat": {
|
||||||
|
"description": "Workspaces display format",
|
||||||
"anyOf": [
|
"anyOf": [
|
||||||
{
|
{
|
||||||
"description": "Show all icons only",
|
"description": "Show all icons only",
|
||||||
|
|||||||
25
schema.json
25
schema.json
@@ -702,6 +702,7 @@
|
|||||||
"const": "EaseInOutBounce"
|
"const": "EaseInOutBounce"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
|
"title": "CubicBezier",
|
||||||
"description": "Custom Cubic Bézier function",
|
"description": "Custom Cubic Bézier function",
|
||||||
"type": "object",
|
"type": "object",
|
||||||
"properties": {
|
"properties": {
|
||||||
@@ -749,11 +750,13 @@
|
|||||||
{
|
{
|
||||||
"type": "null"
|
"type": "null"
|
||||||
}
|
}
|
||||||
]
|
],
|
||||||
|
"default": 250
|
||||||
},
|
},
|
||||||
"enabled": {
|
"enabled": {
|
||||||
"description": "Enable or disable animations",
|
"description": "Enable or disable animations",
|
||||||
"$ref": "#/$defs/PerAnimationPrefixConfig"
|
"$ref": "#/$defs/PerAnimationPrefixConfig",
|
||||||
|
"default": false
|
||||||
},
|
},
|
||||||
"fps": {
|
"fps": {
|
||||||
"description": "Set the animation FPS",
|
"description": "Set the animation FPS",
|
||||||
@@ -774,7 +777,8 @@
|
|||||||
{
|
{
|
||||||
"type": "null"
|
"type": "null"
|
||||||
}
|
}
|
||||||
]
|
],
|
||||||
|
"default": "Linear"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"required": [
|
"required": [
|
||||||
@@ -826,10 +830,12 @@
|
|||||||
"description": "Aspect ratio for temporarily floating windows",
|
"description": "Aspect ratio for temporarily floating windows",
|
||||||
"anyOf": [
|
"anyOf": [
|
||||||
{
|
{
|
||||||
|
"title": "Predefined",
|
||||||
"description": "Predefined aspect ratio",
|
"description": "Predefined aspect ratio",
|
||||||
"$ref": "#/$defs/PredefinedAspectRatio"
|
"$ref": "#/$defs/PredefinedAspectRatio"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
|
"title": "Custom",
|
||||||
"description": "Custom W:H aspect ratio",
|
"description": "Custom W:H aspect ratio",
|
||||||
"type": "array",
|
"type": "array",
|
||||||
"maxItems": 2,
|
"maxItems": 2,
|
||||||
@@ -2501,22 +2507,22 @@
|
|||||||
"description": "Catppuccin palette",
|
"description": "Catppuccin palette",
|
||||||
"oneOf": [
|
"oneOf": [
|
||||||
{
|
{
|
||||||
"description": "Frappe",
|
"description": "Frappe (https://catppuccin.com/palette#flavor-frappe)",
|
||||||
"type": "string",
|
"type": "string",
|
||||||
"const": "Frappe"
|
"const": "Frappe"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"description": "Latte",
|
"description": "Latte (https://catppuccin.com/palette#flavor-latte)",
|
||||||
"type": "string",
|
"type": "string",
|
||||||
"const": "Latte"
|
"const": "Latte"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"description": "Macchiato",
|
"description": "Macchiato (https://catppuccin.com/palette#flavor-macchiato)",
|
||||||
"type": "string",
|
"type": "string",
|
||||||
"const": "Macchiato"
|
"const": "Macchiato"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"description": "Mocha",
|
"description": "Mocha (https://catppuccin.com/palette#flavor-mocha)",
|
||||||
"type": "string",
|
"type": "string",
|
||||||
"const": "Mocha"
|
"const": "Mocha"
|
||||||
}
|
}
|
||||||
@@ -2719,7 +2725,7 @@
|
|||||||
"const": "UltrawideVerticalStack"
|
"const": "UltrawideVerticalStack"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"description": "Grid Layout\n\n```\n+-----+-----+ +---+---+---+ +---+---+---+ +---+---+---+\n| | | | | | | | | | | | | | |\n| | | | | | | | | | | | | +---+\n+-----+-----+ | +---+---+ +---+---+---+ +---+---| |\n| | | | | | | | | | | | | +---+\n| | | | | | | | | | | | | | |\n+-----+-----+ +---+---+---+ +---+---+---+ +---+---+---+\n 4 windows 5 windows 6 windows 7 windows\n```",
|
"description": "Grid Layout\n\n```\n+-----+-----+ +---+---+---+ +---+---+---+ +---+---+---+\n| | | | | | | | | | | | | | |\n| | | | | | | | | | | | | +---+\n+-----+-----+ | +---+---+ +---+---+---+ +---+---| |\n| | | | | | | | | | | | | +---+\n| | | | | | | | | | | | | | |\n+-----+-----+ +---+---+---+ +---+---+---+ +---+---+---+\n 4 windows 5 windows 6 windows 7 windows\n```",
|
||||||
"type": "string",
|
"type": "string",
|
||||||
"const": "Grid"
|
"const": "Grid"
|
||||||
},
|
},
|
||||||
@@ -2839,6 +2845,7 @@
|
|||||||
"description": "Komorebi theme",
|
"description": "Komorebi theme",
|
||||||
"oneOf": [
|
"oneOf": [
|
||||||
{
|
{
|
||||||
|
"title": "Catppuccin",
|
||||||
"description": "A theme from catppuccin-egui",
|
"description": "A theme from catppuccin-egui",
|
||||||
"type": "object",
|
"type": "object",
|
||||||
"properties": {
|
"properties": {
|
||||||
@@ -2977,6 +2984,7 @@
|
|||||||
]
|
]
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
|
"title": "Base16",
|
||||||
"description": "A theme from base16-egui-themes",
|
"description": "A theme from base16-egui-themes",
|
||||||
"type": "object",
|
"type": "object",
|
||||||
"properties": {
|
"properties": {
|
||||||
@@ -3115,6 +3123,7 @@
|
|||||||
]
|
]
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
|
"title": "Custom",
|
||||||
"description": "A custom Base16 theme",
|
"description": "A custom Base16 theme",
|
||||||
"type": "object",
|
"type": "object",
|
||||||
"properties": {
|
"properties": {
|
||||||
|
|||||||
Reference in New Issue
Block a user