diff --git a/src/config.c b/src/config.c index 9f7f6c4..f5b3547 100644 --- a/src/config.c +++ b/src/config.c @@ -1274,6 +1274,11 @@ gboolean config_read_default_path() // generate config file fprintf(stderr, "tint2 warning: could not find a config file!\n"); + // According to the XDG Base Directory Specification (https://specifications.freedesktop.org/basedir-spec/basedir-spec-0.6.html) + // if the user's config directory does not exist, we should create it with permissions set to 0700. + if (!g_file_test(g_get_user_config_dir(), G_FILE_TEST_IS_DIR)) + g_mkdir(g_get_user_config_dir(), 0700); + gchar *dir = g_build_filename(g_get_user_config_dir(), "tint2", NULL); if (!g_file_test(dir, G_FILE_TEST_IS_DIR)) g_mkdir(dir, 0700);