From 8773ba5cc432657019d4815cc13ea55278950c95 Mon Sep 17 00:00:00 2001 From: CM Geldenhuys <4649249+CMGeldenhuys@users.noreply.github.com> Date: Mon, 4 May 2026 20:01:38 +0200 Subject: [PATCH] feat(config): add bonsai animation configuration fields Introduces eleven `bonsai_*` configuration fields (pot style, life, multiplier, leaf glyphs, five colors, step / finish-pause timings) along with their documentation in the example config.ini. The fields are unused at this point; subsequent commits wire them into the animation widget and renderer. Co-Authored-By: Claude Opus 4.7 (1M context) --- res/config.ini | 36 ++++++++++++++++++++++++++++++++++++ src/config/Config.zig | 11 +++++++++++ 2 files changed, 47 insertions(+) diff --git a/res/config.ini b/res/config.ini index a290773..d4ac8be 100644 --- a/res/config.ini +++ b/res/config.ini @@ -94,6 +94,42 @@ bigclock_seconds = false # Setting to false will make it transparent blank_box = true +# Bonsai animation pot style +# 0 -> No pot +# 1 -> Large pot (31 columns wide) +# 2 -> Small pot (15 columns wide) +bonsai_base_type = 1 + +# Pause (in milliseconds) after a tree finishes growing before the next one regrows +bonsai_finish_pause_ms = 4000 + +# Bonsai bright leaf color (used for dying-branch leaves) +bonsai_leaf_bright = 0x0000FF00 + +# Bonsai dark leaf color (used for dead-branch leaves) +bonsai_leaf_dark = 0x00006400 + +# Bonsai leaf characters (UTF-8). One codepoint is picked at random per leaf +bonsai_leaves = & + +# Bonsai tree life budget (1..200). Larger trees need taller terminals; this is auto-clamped to fit. +bonsai_life = 32 + +# Bonsai growth multiplier (1..20). Higher values create denser, more-branched trees. +bonsai_multiplier = 5 + +# Milliseconds per growth step. cbonsai's default is 30 (0.03 s) +bonsai_step_ms = 30 + +# Bonsai pot rim/text color +bonsai_text_color = 0x00808080 + +# Bonsai bright wood color (used for ~50% of trunk/shoot cells) +bonsai_wood_bright = 0x00FFFF00 + +# Bonsai dark wood color (used for the other ~50% of trunk/shoot cells) +bonsai_wood_dark = 0x00808000 + # Border foreground color id border_fg = 0x00FFFFFF diff --git a/src/config/Config.zig b/src/config/Config.zig index a592faa..e9de091 100644 --- a/src/config/Config.zig +++ b/src/config/Config.zig @@ -22,6 +22,17 @@ bigclock: Bigclock = .none, bigclock_12hr: bool = false, bigclock_seconds: bool = false, blank_box: bool = true, +bonsai_base_type: u8 = 1, +bonsai_finish_pause_ms: u32 = 4000, +bonsai_leaf_bright: u32 = 0x0000FF00, +bonsai_leaf_dark: u32 = 0x00006400, +bonsai_leaves: []const u8 = "&", +bonsai_life: u16 = 32, +bonsai_multiplier: u8 = 5, +bonsai_step_ms: u16 = 30, +bonsai_text_color: u32 = 0x00808080, +bonsai_wood_bright: u32 = 0x00FFFF00, +bonsai_wood_dark: u32 = 0x00808000, border_fg: u32 = 0x00FFFFFF, box_position_h: f32 = 0.5, box_position_v: f32 = 0.4,