From 1af4f38f9ba4bc48637b7982cb0bea5873b3cfe6 Mon Sep 17 00:00:00 2001 From: Csaba Date: Wed, 18 Dec 2024 11:13:12 +0100 Subject: [PATCH] feat(bar): added icon_scale to the config allowing a custom value between 1.0 and 2.0 --- komorebi-bar/src/bar.rs | 2 +- komorebi-bar/src/config.rs | 2 ++ komorebi-bar/src/render.rs | 16 +++++++++++++--- 3 files changed, 16 insertions(+), 4 deletions(-) diff --git a/komorebi-bar/src/bar.rs b/komorebi-bar/src/bar.rs index 0f26e1e4..3f3a9699 100644 --- a/komorebi-bar/src/bar.rs +++ b/komorebi-bar/src/bar.rs @@ -246,7 +246,7 @@ impl Komobar { } self.render_config - .replace(config.new_renderconfig(ctx, *self.bg_color.borrow())); + .replace(config.new_renderconfig(ctx, *self.bg_color.borrow(), config.icon_scale)); let mut komorebi_notification_state = previous_notification_state; let mut komorebi_widgets = Vec::new(); diff --git a/komorebi-bar/src/config.rs b/komorebi-bar/src/config.rs index 7a9ac9dc..d6ff6597 100644 --- a/komorebi-bar/src/config.rs +++ b/komorebi-bar/src/config.rs @@ -25,6 +25,8 @@ pub struct KomobarConfig { pub font_family: Option, /// Font size (default: 12.5) pub font_size: Option, + /// Scale of the icons relative to the font_size [[1.0-2.0]]. (default: 1.4) + pub icon_scale: Option, /// Max label width before text truncation (default: 400.0) pub max_label_width: Option, /// Theme diff --git a/komorebi-bar/src/render.rs b/komorebi-bar/src/render.rs index 64ef91af..d6edc81c 100644 --- a/komorebi-bar/src/render.rs +++ b/komorebi-bar/src/render.rs @@ -56,11 +56,21 @@ pub struct RenderConfig { } pub trait RenderExt { - fn new_renderconfig(&self, ctx: &Context, background_color: Color32) -> RenderConfig; + fn new_renderconfig( + &self, + ctx: &Context, + background_color: Color32, + icon_scale: Option, + ) -> RenderConfig; } impl RenderExt for &KomobarConfig { - fn new_renderconfig(&self, ctx: &Context, background_color: Color32) -> RenderConfig { + fn new_renderconfig( + &self, + ctx: &Context, + background_color: Color32, + icon_scale: Option, + ) -> RenderConfig { let text_font_id = ctx .style() .text_styles @@ -69,7 +79,7 @@ impl RenderExt for &KomobarConfig { .unwrap_or_else(FontId::default); let mut icon_font_id = text_font_id.clone(); - icon_font_id.size *= 1.4; + icon_font_id.size *= icon_scale.unwrap_or(1.4).clamp(1.0, 2.0); RenderConfig { monitor_idx: self.monitor.index,