From 40d449e011f83175b9a69251ee827d5a1af32dca Mon Sep 17 00:00:00 2001 From: BowDown097 Date: Tue, 4 Feb 2025 09:48:10 -0800 Subject: [PATCH] refactor: address requested changes --- docs/Configuration guide.md | 2 +- src/config/mod.rs | 7 ++++--- src/modules/focused.rs | 6 ++---- src/modules/launcher/mod.rs | 21 ++++++++------------- src/modules/mod.rs | 2 +- 5 files changed, 16 insertions(+), 22 deletions(-) diff --git a/docs/Configuration guide.md b/docs/Configuration guide.md index 2b22cd9a..70dfb46d 100644 --- a/docs/Configuration guide.md +++ b/docs/Configuration guide.md @@ -309,7 +309,7 @@ The following table lists each of the bar-level bar config options: | `exclusive_zone` | `boolean` | `true` unless `start_hidden` is enabled. | Whether the bar should reserve an exclusive zone around it. | | `popup_gap` | `integer` | `5` | The gap between the bar and popup window. | | `icon_theme` | `string` | `null` | Name of the GTK icon theme to use. Leave blank to use default. | -| `icon_overrides` | `map` | `null` | Map of app IDs (or classes) to icon names, overriding the app's default icon. | +| `icon_overrides` | `Map` | `{}` | Map of app IDs (or classes) to icon names, overriding the app's default icon. | | `start_hidden` | `boolean` | `false`, or `true` if `autohide` set | Whether the bar should be hidden when the application starts. Enabled by default when `autohide` is set. | | `autohide` | `integer` | `null` | The duration in milliseconds before the bar is hidden after the cursor leaves. Leave unset to disable auto-hide behaviour. | | `start` | `Module[]` | `[]` | Array of left or top modules. | diff --git a/src/config/mod.rs b/src/config/mod.rs index 7d22a514..d8aeb953 100644 --- a/src/config/mod.rs +++ b/src/config/mod.rs @@ -293,8 +293,9 @@ pub struct BarConfig { /// Map of app IDs (or classes) to icon names, /// overriding the app's default icon. /// - /// **Default**; `null` - pub icon_overrides: Option>, + /// **Default**; `{}` + #[serde(default)] + pub icon_overrides: HashMap, /// An array of modules to append to the start of the bar. /// Depending on the orientation, this is either the top of the left edge. @@ -344,7 +345,7 @@ impl Default for BarConfig { start_hidden: None, autohide: None, icon_theme: None, - icon_overrides: None, + icon_overrides: HashMap::default(), start: Some(vec![ModuleConfig::Label( LabelModule::new("ℹ️ Using default config".to_string()).into(), )]), diff --git a/src/modules/focused.rs b/src/modules/focused.rs index e8f9da3f..bfb3e9ad 100644 --- a/src/modules/focused.rs +++ b/src/modules/focused.rs @@ -159,10 +159,8 @@ impl Module for FocusedModule { if let Some((name, mut id)) = data { if self.show_icon { - if let Some(ref overrides) = icon_overrides { - if let Some(icon) = overrides.get(&id) { - id = icon.clone(); - } + if let Some(icon) = icon_overrides.get(&id) { + id = icon.clone(); } match ImageProvider::parse(&id, &icon_theme, true, self.icon_size) diff --git a/src/modules/launcher/mod.rs b/src/modules/launcher/mod.rs index 6f6c1bd6..a3c0bb34 100644 --- a/src/modules/launcher/mod.rs +++ b/src/modules/launcher/mod.rs @@ -138,7 +138,7 @@ impl Module for LauncherModule { fn spawn_controller( &self, - _info: &ModuleInfo, + info: &ModuleInfo, context: &WidgetContext, mut rx: mpsc::Receiver, ) -> crate::Result<()> { @@ -149,10 +149,9 @@ impl Module for LauncherModule { favorites .iter() .map(|app_id| { - let icon_override = _info + let icon_override = info .icon_overrides - .as_ref() - .and_then(|overrides| overrides.get(app_id)) + .get(app_id) .map_or_else(String::new, |v| v.to_string()); ( @@ -166,7 +165,7 @@ impl Module for LauncherModule { let items = arc_mut!(items); let items2 = Arc::clone(&items); - let icon_overrides = arc_mut!(_info.icon_overrides.clone()); + let icon_overrides = arc_mut!(info.icon_overrides.clone()); let icon_overrides2 = Arc::clone(&icon_overrides); let tx = context.tx.clone(); @@ -192,10 +191,8 @@ impl Module for LauncherModule { let mut item = Item::from(info.clone()); let icon_overrides = lock!(icon_overrides); - if let Some(overrides) = icon_overrides.as_ref() { - if let Some(icon) = overrides.get(&info.app_id) { - item.icon_override = icon.clone(); - } + if let Some(icon) = icon_overrides.get(&info.app_id) { + item.icon_override = icon.clone(); } items.insert(info.app_id.clone(), item); @@ -231,10 +228,8 @@ impl Module for LauncherModule { let mut item: Item = info.into(); let icon_overrides = lock!(icon_overrides); - if let Some(overrides) = icon_overrides.as_ref() { - if let Some(icon) = overrides.get(&app_id) { - item.icon_override = icon.clone(); - } + if let Some(icon) = icon_overrides.get(&app_id) { + item.icon_override = icon.clone(); } items.insert(app_id.clone(), item.clone()); diff --git a/src/modules/mod.rs b/src/modules/mod.rs index 35289146..484d145f 100644 --- a/src/modules/mod.rs +++ b/src/modules/mod.rs @@ -72,7 +72,7 @@ pub struct ModuleInfo<'a> { pub monitor: &'a Monitor, pub output_name: &'a str, pub icon_theme: &'a IconTheme, - pub icon_overrides: &'a Option>, + pub icon_overrides: &'a HashMap, } #[derive(Debug, Clone)]