diff --git a/src/config.rs b/src/config.rs index dcdba06..bd0cc5d 100644 --- a/src/config.rs +++ b/src/config.rs @@ -46,11 +46,19 @@ impl Default for Config { /// Gets the configuration directory. Panics if unavailable. pub fn get_config_dir() -> PathBuf { - std::env::var_os("HOME") + std::env::var_os("XDG_CONFIG_HOME") .map(PathBuf::try_from) - .expect("$HOME is unset") + .expect("$XDG_CONFIG_HOME is unset") .unwrap() - .join(".config/breed") + .join("breed") +} + +pub fn get_data_dir() -> PathBuf { + std::env::var_os("XDG_DATA_HOME") + .map(PathBuf::try_from) + .expect("$XDG_DATA_HOME is unset") + .unwrap() + .join("breed") } /// Watches a theme file and automatically reloads it into a [StyleStore]. @@ -65,7 +73,8 @@ pub struct ThemeWatcher { impl ThemeWatcher { pub fn spawn(styles: Arc>) -> Sender { - let themes_dir = get_config_dir().join("themes"); + let themes_dir = get_data_dir().join("themes"); + println!("{:?}", themes_dir); let default_path = themes_dir.join("default.toml"); let (fs_tx, fs_rx) = unbounded(); let (command_tx, command_rx) = unbounded();