river version as status when empty

This commit is contained in:
sewn 2024-10-25 12:02:05 +03:00
parent af72852c7a
commit 9878cd0721
No known key found for this signature in database

26
dam.c
View file

@ -77,6 +77,7 @@ static struct zriver_seat_status_v1 *seat_status;
static struct wl_list bars;
static Bar *selbar;
static char stext[256];
static char river_version[14];
static char *mode;
static struct {
@ -114,6 +115,26 @@ die(const char *fmt, ...)
exit(1);
}
static void
river_version_setup(void)
{
char *p;
FILE *fp;
if (!(fp = popen("river -version", "r")))
die("popen:");
p = fgets(river_version, sizeof(river_version) - 1, fp);
if (pclose(fp) < 0)
die("pclose:");
if (!p)
die("no river version read");
river_version[strcspn(river_version, "\n")] = 0;
memmove(p + 6, p, strlen(p) + 1);
memcpy(p, "river ", 6);
}
static void
parse_color(uint32_t *dest, const char *src)
{
@ -287,6 +308,9 @@ bars_draw(void)
{
Bar *bar;
if (stext[0] == '\0')
strcpy(stext, river_version);
wl_list_for_each(bar, &bars, link)
if (bar->drw) /* called before initial bars setup */
bar_draw(bar);
@ -705,6 +729,8 @@ setup(void)
if (!compositor || !shm || !layer_shell || !status_manager || !control || !seat)
die("unsupported compositor");
river_version_setup();
sigemptyset(&mask);
sigaddset(&mask, SIGUSR1);
sigaddset(&mask, SIGTERM);