ConfigManager class handles all configuration paths.
ConfigManager
Constructor
Configuration Directories
config_dir
Stores user configuration files. Windows:data_dir
Stores application data, caches, and mod library. Windows:Configuration Files
settings.json
Stores application settings. Location:{config_dir}/settings.json
Access:
mod_config.json
Stores installed mods and load order. Location:{config_dir}/mod_config.json
Access:
mod_tracker.json
Tracks persistent mod changes. Location:{config_dir}/mod_tracker.json
Access:
Data Directories
mod_library_dir
Stores installed mod files. Default Location:{data_dir}/mod_library/
Structure:
cache_dir
Stores temporary files and caches. Location:{data_dir}/cache/
Access:
sound_database.json
Caches sound metadata. Location:{data_dir}/sound_database.json
Access:
fingerprint_database.json
Stores audio fingerprints for matching. Location:{data_dir}/fingerprint_database.json
Access:
Helper Functions
All configuration paths are accessible via helper functions:Migration
ZZAR automatically migrates old configuration from home directory: Old Locations (pre-v1.0):~/.zzar_settings.json→{config_dir}/settings.json~/.zzar_mod_config.json→{config_dir}/mod_config.json~/.zzar_mod_tracker.json→{config_dir}/mod_tracker.json~/.zzar_mod_library/→{data_dir}/mod_library/
Environment Variables
XDG_CONFIG_HOME
Override config directory on Linux:XDG_DATA_HOME
Override data directory on Linux:APPDATA (Windows)
Windows config directory:LOCALAPPDATA (Windows)
Windows data directory:Example Usage
Load Settings
Custom Mod Library Location
Check Configuration Paths
Notes
- All directories are created automatically on first access
- Configuration is platform-specific (Windows vs Linux)
- Mod library can be relocated to external drives
- Migration from old config happens automatically
- JSON files use UTF-8 encoding with 2-space indentation
- ConfigManager uses singleton pattern (
get_config_manager())