diff --git a/src/config.rs b/src/config.rs index e4ceff1..9c33365 100644 --- a/src/config.rs +++ b/src/config.rs @@ -4,7 +4,7 @@ use core::fmt; use crate::enums::*; use untildify; -#[derive(Debug)] +#[derive(Debug, Clone)] pub struct Monitors { pub monitors: Vec, } @@ -29,7 +29,7 @@ impl fmt::Display for Monitors { } } -#[derive(Debug)] +#[derive(Debug, Clone)] pub struct WallpaperDir { ultrawide: String, horizontal: String, @@ -68,7 +68,7 @@ impl fmt::Display for WallpaperDir { } } -#[derive(Debug)] +#[derive(Debug, Clone)] pub struct Config { pub x_server: String, pub wallpaper_engine: WallpaperHandler, diff --git a/src/enums.rs b/src/enums.rs index df78926..8c7b458 100644 --- a/src/enums.rs +++ b/src/enums.rs @@ -1,6 +1,6 @@ use core::fmt; -#[derive(Debug)] +#[derive(Debug, Clone)] pub enum WallpaperHandler { Feh, Plasma, diff --git a/src/files.rs b/src/files.rs index 47c62be..488435a 100644 --- a/src/files.rs +++ b/src/files.rs @@ -6,7 +6,7 @@ use std::fmt::Write as _; use crate::config::*; use crate::enums::*; -#[derive(Debug)] +#[derive(Debug, Clone)] pub struct Wallpaper { path: String, } @@ -23,7 +23,7 @@ impl fmt::Display for Wallpaper { } } -#[derive(Debug)] +#[derive(Debug, Clone)] pub struct Wallpapers { ultrawide: Vec, horizontal: Vec, @@ -32,14 +32,12 @@ pub struct Wallpapers { } impl Wallpapers { - pub fn new() -> Wallpapers { + pub fn new(config: Config) -> Wallpapers { Wallpapers { ultrawide: vec![], horizontal: vec![], vertical: vec![], - config: Config::from_config( - "/home/ben/.config/wallpaperctl/wallpaperctl.ini".to_owned(), - ), + config, } } diff --git a/src/main.rs b/src/main.rs index df28be8..c0d7a56 100644 --- a/src/main.rs +++ b/src/main.rs @@ -1,11 +1,13 @@ mod config; +use config::*; mod enums; mod files; use files::*; mod handlers; fn main() { - let mut wallpapers = Wallpapers::new(); + let config = Config::from_config("/home/ben/.config/wallpaperctl/wallpaperctl.ini".to_owned()); + let mut wallpapers = Wallpapers::new(config.clone()); wallpapers.load_all(); handlers::plasma::change_wallpapers(&wallpapers);