Major refactoring in preparation for bar modules

This commit is contained in:
bakkeby
2020-07-15 08:57:30 +02:00
parent 1584a32063
commit 903b32ac8b
76 changed files with 1874 additions and 1741 deletions

31
patch/bar_dwmblocks.c Normal file
View File

@@ -0,0 +1,31 @@
static int dwmblockssig;
pid_t dwmblockspid = 0;
int
getdwmblockspid()
{
char buf[16];
FILE *fp = popen("pidof -s dwmblocks", "r");
if (fgets(buf, sizeof(buf), fp));
pid_t pid = strtoul(buf, NULL, 10);
pclose(fp);
dwmblockspid = pid;
return pid != 0 ? 0 : -1;
}
void
sigdwmblocks(const Arg *arg)
{
union sigval sv;
sv.sival_int = (dwmblockssig << 8) | arg->i;
if (!dwmblockspid)
if (getdwmblockspid() == -1)
return;
if (sigqueue(dwmblockspid, SIGUSR1, sv) == -1) {
if (errno == ESRCH) {
if (!getdwmblockspid())
sigqueue(dwmblockspid, SIGUSR1, sv);
}
}
}