summaryrefslogtreecommitdiff
path: root/internal/gui/app.go
diff options
context:
space:
mode:
Diffstat (limited to 'internal/gui/app.go')
-rw-r--r--internal/gui/app.go15
1 files changed, 14 insertions, 1 deletions
diff --git a/internal/gui/app.go b/internal/gui/app.go
index 4e70970..3e256b8 100644
--- a/internal/gui/app.go
+++ b/internal/gui/app.go
@@ -100,7 +100,8 @@ type Config struct {
// DefaultConfig returns default GUI configuration
func DefaultConfig() *Config {
homeDir, _ := os.UserHomeDir()
- outputDir := filepath.Join(homeDir, "Downloads")
+ // Use XDG Base Directory specification for state data
+ outputDir := filepath.Join(homeDir, ".local", "state", "totalrecall", "cards")
return &Config{
OutputDir: outputDir,
@@ -113,6 +114,18 @@ func DefaultConfig() *Config {
func New(config *Config) *Application {
if config == nil {
config = DefaultConfig()
+ } else {
+ // Fill in missing fields with defaults
+ defaults := DefaultConfig()
+ if config.OutputDir == "" {
+ config.OutputDir = defaults.OutputDir
+ }
+ if config.AudioFormat == "" {
+ config.AudioFormat = defaults.AudioFormat
+ }
+ if config.ImageProvider == "" {
+ config.ImageProvider = defaults.ImageProvider
+ }
}
// Ensure output directory exists