emma
/
breed
Archived
forked from mars/breed
1
0
Fork 0

Compare commits

...

2 Commits

1 changed files with 26 additions and 5 deletions

View File

@ -46,11 +46,31 @@ 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")
.unwrap()
.join(".config/breed")
.expect("$XDG_CONFIG_HOME is unset.")
.unwrap_or_else(|_| {
std::env::var_os("HOME")
.map(PathBuf::try_from)
.expect("User has no $HOME.")
.unwrap()
.join(".config")
})
.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_or_else(|_| {
std::env::var_os("HOME")
.map(PathBuf::try_from)
.expect("User has no $HOME.")
.unwrap()
.join(".local/share")
})
.join("breed")
}
/// Watches a theme file and automatically reloads it into a [StyleStore].
@ -65,7 +85,8 @@ pub struct ThemeWatcher {
impl ThemeWatcher {
pub fn spawn(styles: Arc<Mutex<StyleStore>>) -> Sender<PathBuf> {
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();