hyprshell_core_lib/config/
path.rs

1use std::env;
2use std::path::PathBuf;
3
4pub fn get_default_config_path() -> PathBuf {
5    let mut path = get_config_dir();
6    path.push("hyprshell/config.ron");
7    path
8}
9
10pub fn get_default_css_path() -> PathBuf {
11    let mut path = get_config_dir();
12    path.push("hyprshell/styles.css");
13    path
14}
15
16pub fn get_default_data_dir() -> PathBuf {
17    let mut path = get_data_dir();
18    path.push("hyprshell");
19    path
20}
21
22pub fn get_data_dir() -> PathBuf {
23    env::var_os("XDG_DATA_HOME")
24        .map(PathBuf::from)
25        .or_else(|| {
26            env::var_os("HOME")
27                .map(|home| PathBuf::from(format!("{}/.local/share", home.to_string_lossy())))
28        })
29        .expect("Failed to get config dir (XDG_DATA_HOME or HOME not set)")
30}
31
32fn get_config_dir() -> PathBuf {
33    env::var_os("XDG_CONFIG_HOME")
34        .map(PathBuf::from)
35        .or_else(|| {
36            env::var_os("HOME")
37                .map(|home| PathBuf::from(format!("{}/.config", home.to_string_lossy())))
38        })
39        .expect("Failed to get config dir (XDG_CONFIG_HOME or HOME not set)")
40}