Introduction
Introduction Statistics Contact Development Disclaimer Help
Handle SIGUSR1 for forced refreshes - slstatus - status monitor
git clone git://git.suckless.org/slstatus
Log
Files
Refs
README
LICENSE
---
commit d1b23e5509863fd0790261b2b388e687d5218d53
parent 3fc2872d1b3e62903a4af49326d42c97c11911d5
Author: Mart Lubbers <[email protected]>
Date: Thu, 18 Jun 2020 08:46:12 +0200
Handle SIGUSR1 for forced refreshes
At some point one might want to force a refresh for example after
checking email or changing the volume. Sending a SIGUSR1 achieves this
now
Diffstat:
M slstatus.c | 9 +++++----
1 file changed, 5 insertions(+), 4 deletions(-)
---
diff --git a/slstatus.c b/slstatus.c
@@ -18,7 +18,7 @@ struct arg {
};
char buf[1024];
-static int done;
+static volatile sig_atomic_t done;
static Display *dpy;
#include "config.h"
@@ -26,9 +26,8 @@ static Display *dpy;
static void
terminate(const int signo)
{
- (void)signo;
-
- done = 1;
+ if (signo != SIGUSR1)
+ done = 1;
}
static void
@@ -72,6 +71,8 @@ main(int argc, char *argv[])
act.sa_handler = terminate;
sigaction(SIGINT, &act, NULL);
sigaction(SIGTERM, &act, NULL);
+ act.sa_flags |= SA_RESTART;
+ sigaction(SIGUSR1, &act, NULL);
if (!sflag && !(dpy = XOpenDisplay(NULL))) {
die("XOpenDisplay: Failed to open display");
You are viewing proxied material from suckless.org. The copyright of proxied material belongs to its original authors. Any comments or complaints in relation to proxied material should be directed to the original authors of the content concerned. Please see the disclaimer for more details.