summaryrefslogtreecommitdiffhomepage
path: root/patch
diff options
context:
space:
mode:
authorbakkeby <[email protected]>2020-05-02 14:43:44 +0200
committerbakkeby <[email protected]>2020-05-02 14:58:23 +0200
commitf028377c98bd55cd4611add14a4fa7100329451d (patch)
treedd0ce41cec4a612245a4aebe58d6f938e124c251 /patch
parent5c1e09688f3b706e5b5f46033c9284e7e66f89b5 (diff)
downloaddwm-flexipatch-f028377c98bd55cd4611add14a4fa7100329451d.tar.gz
dwm-flexipatch-f028377c98bd55cd4611add14a4fa7100329451d.zip
Adding dwmblocks patch
Diffstat (limited to 'patch')
-rw-r--r--patch/dwmblocks.c31
-rw-r--r--patch/dwmblocks.h2
-rw-r--r--patch/include.c3
-rw-r--r--patch/include.h3
4 files changed, 39 insertions, 0 deletions
diff --git a/patch/dwmblocks.c b/patch/dwmblocks.c
new file mode 100644
index 0000000..442b0bc
--- /dev/null
+++ b/patch/dwmblocks.c
@@ -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);
+ }
+ }
+} \ No newline at end of file
diff --git a/patch/dwmblocks.h b/patch/dwmblocks.h
new file mode 100644
index 0000000..f08f1d5
--- /dev/null
+++ b/patch/dwmblocks.h
@@ -0,0 +1,2 @@
+static int getdwmblockspid();
+static void sigdwmblocks(const Arg *arg); \ No newline at end of file
diff --git a/patch/include.c b/patch/include.c
index 42b35f4..f3f71e4 100644
--- a/patch/include.c
+++ b/patch/include.c
@@ -29,6 +29,9 @@
#if DRAGCFACT_PATCH && CFACTS_PATCH
#include "dragcfact.c"
#endif
+#if DWMBLOCKS_PATCH && STATUSCMD_PATCH
+#include "dwmblocks.c"
+#endif
#if DWMC_PATCH
#include "dwmc.c"
#elif FSIGNAL_PATCH
diff --git a/patch/include.h b/patch/include.h
index 51b51da..2dad7f1 100644
--- a/patch/include.h
+++ b/patch/include.h
@@ -32,6 +32,9 @@
#if DRAGMFACT_PATCH
#include "dragmfact.h"
#endif
+#if DWMBLOCKS_PATCH && STATUSCMD_PATCH
+#include "dwmblocks.h"
+#endif
#if DWMC_PATCH
#include "dwmc.h"
#elif FSIGNAL_PATCH