From 59c1e07f4bb3ad0fff7c92860cedacd27526e612 Mon Sep 17 00:00:00 2001 From: Tsukasa Date: Sun, 13 Sep 2026 14:33:28 +0800 Subject: [PATCH] Add /etc/swindle/config.lua as fallback --- parser/parser.c | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/parser/parser.c b/parser/parser.c index c581ebb..6ac1b2c 100644 --- a/parser/parser.c +++ b/parser/parser.c @@ -13,6 +13,7 @@ #include #include #include +#include #include #include #include @@ -503,17 +504,28 @@ parse_autostart(lua_State *L, Config *cfg) /* Public API */ +#define SWINDLE_SYSTEM_CONFIG "/etc/swindle/config.lua" + char * config_get_path(char *buf, size_t bufsz) { + struct stat sb; + const char *xdg = getenv("XDG_CONFIG_HOME"); if (xdg && *xdg) snprintf(buf, bufsz, "%s/swindle/config.lua", xdg); else { const char *home = getenv("HOME"); - if (!home) home = "/root"; /* you're probably root, aren't you */ + if (!home) home = "/root"; snprintf(buf, bufsz, "%s/.config/swindle/config.lua", home); } + + if (stat(buf, &sb) != 0 || !S_ISREG(sb.st_mode)) { + fprintf(stderr, "swindle config: '%s' not found, falling back to '%s'\n", + buf, SWINDLE_SYSTEM_CONFIG); + snprintf(buf, bufsz, "%s", SWINDLE_SYSTEM_CONFIG); + } + return buf; }