Add a -1 option flag

Allow slstatus to be used by programs that can grab status by calling
an external program on a periodic basis (e.g. tmux)
This commit is contained in:
Daniel Moch 2020-06-23 16:35:43 -04:00 committed by Aaron Marcher
parent d1b23e5509
commit aaf279f6dd
2 changed files with 10 additions and 4 deletions

View File

@ -1,4 +1,4 @@
.Dd 2017-08-10 .Dd 2020-06-23
.Dt SLSTATUS 1 .Dt SLSTATUS 1
.Os .Os
.Sh NAME .Sh NAME
@ -7,6 +7,7 @@
.Sh SYNOPSIS .Sh SYNOPSIS
.Nm .Nm
.Op Fl s .Op Fl s
.Op Fl 1
.Sh DESCRIPTION .Sh DESCRIPTION
.Nm .Nm
is a suckless status monitor for window managers that use WM_NAME (e.g. dwm) or is a suckless status monitor for window managers that use WM_NAME (e.g. dwm) or
@ -18,6 +19,8 @@ outputs to WM_NAME.
.Bl -tag -width Ds .Bl -tag -width Ds
.It Fl s .It Fl s
Write to stdout instead of WM_NAME. Write to stdout instead of WM_NAME.
.It Fl 1
Write once to stdout and quit.
.El .El
.Sh CUSTOMIZATION .Sh CUSTOMIZATION
.Nm .Nm

View File

@ -41,7 +41,7 @@ difftimespec(struct timespec *res, struct timespec *a, struct timespec *b)
static void static void
usage(void) usage(void)
{ {
die("usage: %s [-s]", argv0); die("usage: %s [-s] [-1]", argv0);
} }
int int
@ -56,6 +56,9 @@ main(int argc, char *argv[])
sflag = 0; sflag = 0;
ARGBEGIN { ARGBEGIN {
case '1':
done = 1;
/* fallthrough */
case 's': case 's':
sflag = 1; sflag = 1;
break; break;
@ -78,7 +81,7 @@ main(int argc, char *argv[])
die("XOpenDisplay: Failed to open display"); die("XOpenDisplay: Failed to open display");
} }
while (!done) { do {
if (clock_gettime(CLOCK_MONOTONIC, &start) < 0) { if (clock_gettime(CLOCK_MONOTONIC, &start) < 0) {
die("clock_gettime:"); die("clock_gettime:");
} }
@ -125,7 +128,7 @@ main(int argc, char *argv[])
} }
} }
} }
} } while (!done);
if (!sflag) { if (!sflag) {
XStoreName(dpy, DefaultRootWindow(dpy), NULL); XStoreName(dpy, DefaultRootWindow(dpy), NULL);