fix(config): save user config to project root config.yaml

- _find_config() now looks for config.yaml at project root first
- _get_user_config_path() returns project root config.yaml
- config/default_config.yaml remains as template (not for saving)
This commit is contained in:
Jeremy Shen
2026-06-10 11:47:43 +08:00
parent 1bbce6e72a
commit 8f83fa9eae
+6 -6
View File
@@ -104,7 +104,7 @@ class MainWindow(ctk.CTk):
"""Find the user configuration file.
Checks common locations:
1. config/config.yaml (user's config)
1. config.yaml (project root, user's config)
2. config/default_config.yaml (template, not for saving)
3. User-specified path via env var
@@ -112,14 +112,14 @@ class MainWindow(ctk.CTk):
Path to user config file, or None if not found.
"""
app_dir = Path(__file__).parent.parent
config_dir = app_dir / "config"
# 1. Check for user config first
user_config = config_dir / "config.yaml"
# 1. Check for user config at project root
user_config = app_dir / "config.yaml"
if user_config.exists():
return user_config
# 2. Check for default config (template)
config_dir = app_dir / "config"
default_config = config_dir / "default_config.yaml"
if default_config.exists():
return default_config
@@ -134,13 +134,13 @@ class MainWindow(ctk.CTk):
def _get_user_config_path(self) -> Path:
"""Get the path to the user config file (config.yaml).
Creates config.yaml if it doesn't exist.
Creates config.yaml in project root if it doesn't exist.
Returns:
Path to user config file.
"""
app_dir = Path(__file__).parent.parent
config_path = app_dir / "config" / "config.yaml"
config_path = app_dir / "config.yaml"
config_path.parent.mkdir(parents=True, exist_ok=True)
return config_path