diff --git a/src/bar.rs b/src/bar.rs index cbcdfdc..73feba2 100644 --- a/src/bar.rs +++ b/src/bar.rs @@ -8,6 +8,7 @@ use gtk::gdk::Monitor; use gtk::prelude::*; use gtk::{Application, ApplicationWindow, IconTheme, Orientation, Window, WindowType}; use gtk_layer_shell::LayerShell; +use std::collections::HashMap; use std::rc::Rc; use std::sync::Arc; use std::time::Duration; @@ -24,6 +25,7 @@ pub struct Bar { name: String, monitor_name: String, monitor_size: (i32, i32), + icon_overrides: Arc>, position: BarPosition, ironbar: Rc, @@ -44,6 +46,7 @@ impl Bar { app: &Application, monitor_name: String, monitor_size: (i32, i32), + icon_overrides: Arc>, config: BarConfig, ironbar: Rc, ) -> Self { @@ -93,6 +96,7 @@ impl Bar { name, monitor_name, monitor_size, + icon_overrides, position, ironbar, window, @@ -269,7 +273,7 @@ impl Bar { output_name: &self.monitor_name, location: $location, icon_theme: &icon_theme, - icon_overrides: Arc::new(self.ironbar.config.borrow().icon_overrides.clone()), + icon_overrides: self.icon_overrides.clone(), } }; } @@ -400,9 +404,17 @@ pub fn create_bar( monitor: &Monitor, monitor_name: String, monitor_size: (i32, i32), + icon_overrides: Arc>, config: BarConfig, ironbar: Rc, ) -> Result { - let bar = Bar::new(app, monitor_name, monitor_size, config, ironbar); + let bar = Bar::new( + app, + monitor_name, + monitor_size, + icon_overrides, + config, + ironbar, + ); bar.init(monitor) } diff --git a/src/main.rs b/src/main.rs index 03e5091..0fe9480 100644 --- a/src/main.rs +++ b/src/main.rs @@ -383,6 +383,7 @@ fn load_output_bars( }; let config = ironbar.config.borrow(); + let icon_overrides = Arc::new(config.icon_overrides.clone()); let display = get_display(); // let pos = output.logical_position.unwrap_or_default(); @@ -406,6 +407,7 @@ fn load_output_bars( &monitor, monitor_name.to_string(), output_size, + icon_overrides, config.clone(), ironbar.clone(), )?] @@ -418,6 +420,7 @@ fn load_output_bars( &monitor, monitor_name.to_string(), output_size, + icon_overrides.clone(), config.clone(), ironbar.clone(), ) @@ -428,6 +431,7 @@ fn load_output_bars( &monitor, monitor_name.to_string(), output_size, + icon_overrides, config.bar.clone(), ironbar.clone(), )?],