diff options
| author | ivan-boikov <ik.boikov.public@protonmail.com> | 2024-12-22 15:54:45 +0100 |
|---|---|---|
| committer | ivan-boikov <ik.boikov.public@protonmail.com> | 2024-12-22 15:54:45 +0100 |
| commit | ccd25c1cca66c17d5473f907ef3d47ac9376ac47 (patch) | |
| tree | edfba5cc1afdeb9552155b5b79086b8b69601055 | |
| parent | 355055d36f1248e4b3dc70c901dfb00e66a4d236 (diff) | |
XDG_RUNTIME_DIR handling
| -rw-r--r-- | config.h | 4 | ||||
| -rw-r--r-- | slstatus.c | 22 |
2 files changed, 23 insertions, 3 deletions
@@ -65,8 +65,8 @@ static const char unknown_str[] = "n/a"; */ static const struct arg args[] = { /* function format argument */ - { mpd_track, "[%s", "/tmp/mpd.playing" }, - { cat, " %3s%%]", "/tmp/volume" }, + { mpd_track, "[%s]", "$XDG_RUNTIME_DIR/mpd.playing" }, + { cat, "[%3s%%]", "$XDG_RUNTIME_DIR/volume" }, // BATSTATE // NETSPEED { vpn_status, "%s", NULL }, @@ -54,6 +54,11 @@ main(int argc, char *argv[]) char status[MAXLEN]; const char *res; + char *XDG_RUNTIME_DIR = getenv("XDG_RUNTIME_DIR"); + const char tok_XDG_RUNTIME_DIR[] = "$XDG_RUNTIME_DIR"; + char fpath[1024]; + char *arg; + sflag = 0; ARGBEGIN { case 'v': @@ -87,7 +92,22 @@ main(int argc, char *argv[]) status[0] = '\0'; for (i = len = 0; i < LEN(args); i++) { - if (!(res = args[i].func(args[i].args))) + + if (args[i].args) { + // replace $XDG_RUNTIME_DIR with cached env variable + strcpy(fpath, args[i].args); + arg = strstr(fpath, tok_XDG_RUNTIME_DIR); // arg acts as a temp var + if (arg) { + strcpy(arg, XDG_RUNTIME_DIR); + strcpy(arg + strlen(XDG_RUNTIME_DIR), args[i].args + strlen(tok_XDG_RUNTIME_DIR)); + } + arg = fpath; + } + else { + arg = args[i].args; + } + + if (!(res = args[i].func(arg))) res = unknown_str; if ((ret = esnprintf(status + len, sizeof(status) - len, |
