aboutsummaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorTrung Lê <8@tle.id.au>2026-06-10 11:32:32 +1000
committerTrung Lê <8@tle.id.au>2026-06-10 11:32:32 +1000
commita646f86c232ecbc0d1875ef2b83a165760127699 (patch)
tree8584adb5c971446eedd3959ac6fdaea86953e74d
parent9576fada7bb0262dda68735fd49eafe2d7d9d537 (diff)
fix: derive default Videos dir from $XDG_VIDEOS_DIR, fall back to ~/Videos
Use the standard XDG_VIDEOS_DIR environment variable for the default save directory, falling back to $HOME/Videos when it is unset. The record and replay pages now reuse gsr_config_get_videos_dir() instead of duplicating the lookup.
-rw-r--r--src/gsr-config.c7
-rw-r--r--src/gsr-record-page.c5
-rw-r--r--src/gsr-replay-page.c5
3 files changed, 6 insertions, 11 deletions
diff --git a/src/gsr-config.c b/src/gsr-config.c
index af8b980..8b9bd4b 100644
--- a/src/gsr-config.c
+++ b/src/gsr-config.c
@@ -68,9 +68,10 @@ gsr_config_get_dir(void)
char *
gsr_config_get_videos_dir(void)
{
- const char *vdir = g_get_user_special_dir(G_USER_DIRECTORY_VIDEOS);
- if (vdir)
- return g_strdup(vdir);
+ /* Prefer the standard XDG videos directory, fall back to ~/Videos. */
+ const char *xdg_videos = g_getenv("XDG_VIDEOS_DIR");
+ if (xdg_videos && *xdg_videos)
+ return g_strdup(xdg_videos);
char *home = get_home_dir();
char *result = g_build_filename(home, "Videos", NULL);
g_free(home);
diff --git a/src/gsr-record-page.c b/src/gsr-record-page.c
index 1a34c0a..24247da 100644
--- a/src/gsr-record-page.c
+++ b/src/gsr-record-page.c
@@ -69,10 +69,7 @@ G_DEFINE_FINAL_TYPE(GsrRecordPage, gsr_record_page, ADW_TYPE_PREFERENCES_PAGE)
static char *
get_default_videos_dir(void)
{
- const char *vdir = g_get_user_special_dir(G_USER_DIRECTORY_VIDEOS);
- if (vdir)
- return g_strdup(vdir);
- return g_build_filename(g_get_home_dir(), "Videos", NULL);
+ return gsr_config_get_videos_dir();
}
/* ── Timer helpers ───────────────────────────────────────────────── */
diff --git a/src/gsr-replay-page.c b/src/gsr-replay-page.c
index 0a354be..3c516a8 100644
--- a/src/gsr-replay-page.c
+++ b/src/gsr-replay-page.c
@@ -67,10 +67,7 @@ G_DEFINE_FINAL_TYPE(GsrReplayPage, gsr_replay_page, ADW_TYPE_PREFERENCES_PAGE)
static char *
get_default_videos_dir(void)
{
- const char *vdir = g_get_user_special_dir(G_USER_DIRECTORY_VIDEOS);
- if (vdir)
- return g_strdup(vdir);
- return g_build_filename(g_get_home_dir(), "Videos", NULL);
+ return gsr_config_get_videos_dir();
}
/* ── Timer helpers ───────────────────────────────────────────────── */