aboutsummaryrefslogtreecommitdiff
path: root/src/config
diff options
context:
space:
mode:
authorOgulcan Celik <ogulcancelik@gmail.com>2026-06-08 01:36:51 +0300
committerOgulcan Celik <ogulcancelik@gmail.com>2026-06-08 01:36:51 +0300
commitfb56e64537de5f93786ed121f703da2a4105badc (patch)
tree67f6e100141dbee05c75ec421927d62e54d23ec6 /src/config
parent416827872a6e2c820bd58209d267685d4c07cb7d (diff)
fix: improve windows pane behavior
Diffstat (limited to 'src/config')
-rw-r--r--src/config/io.rs38
1 files changed, 18 insertions, 20 deletions
diff --git a/src/config/io.rs b/src/config/io.rs
index 1bfabf96..984f25e0 100644
--- a/src/config/io.rs
+++ b/src/config/io.rs
@@ -14,30 +14,20 @@ pub fn app_dir_name() -> &'static str {
pub fn config_dir() -> PathBuf {
if let Ok(dir) = std::env::var("XDG_CONFIG_HOME") {
- PathBuf::from(dir).join(app_dir_name())
- } else if cfg!(windows) {
- windows_config_dir()
- } else if let Ok(home) = std::env::var("HOME") {
- PathBuf::from(home).join(format!(".config/{}", app_dir_name()))
- } else {
- std::env::temp_dir().join(app_dir_name())
+ return PathBuf::from(dir).join(app_dir_name());
}
+ platform_config_dir()
}
pub fn state_dir() -> PathBuf {
if let Ok(dir) = std::env::var("XDG_STATE_HOME") {
- PathBuf::from(dir).join(app_dir_name())
- } else if cfg!(windows) {
- windows_state_dir()
- } else if let Ok(home) = std::env::var("HOME") {
- PathBuf::from(home).join(format!(".local/state/{}", app_dir_name()))
- } else {
- std::env::temp_dir().join(format!("{}-state", app_dir_name()))
+ return PathBuf::from(dir).join(app_dir_name());
}
+ platform_state_dir()
}
#[cfg(windows)]
-fn windows_config_dir() -> PathBuf {
+fn platform_config_dir() -> PathBuf {
if let Ok(dir) = std::env::var("APPDATA") {
return PathBuf::from(dir).join(app_dir_name());
}
@@ -54,12 +44,16 @@ fn windows_config_dir() -> PathBuf {
}
#[cfg(not(windows))]
-fn windows_config_dir() -> PathBuf {
- unreachable!("windows_config_dir is only called on Windows")
+fn platform_config_dir() -> PathBuf {
+ if let Ok(home) = std::env::var("HOME") {
+ PathBuf::from(home).join(format!(".config/{}", app_dir_name()))
+ } else {
+ std::env::temp_dir().join(app_dir_name())
+ }
}
#[cfg(windows)]
-fn windows_state_dir() -> PathBuf {
+fn platform_state_dir() -> PathBuf {
if let Ok(dir) = std::env::var("LOCALAPPDATA") {
return PathBuf::from(dir).join(app_dir_name());
}
@@ -76,8 +70,12 @@ fn windows_state_dir() -> PathBuf {
}
#[cfg(not(windows))]
-fn windows_state_dir() -> PathBuf {
- unreachable!("windows_state_dir is only called on Windows")
+fn platform_state_dir() -> PathBuf {
+ if let Ok(home) = std::env::var("HOME") {
+ PathBuf::from(home).join(format!(".local/state/{}", app_dir_name()))
+ } else {
+ std::env::temp_dir().join(format!("{}-state", app_dir_name()))
+ }
}
impl Config {