| Add a -1 option flag - slstatus - status monitor | |
| git clone git://git.suckless.org/slstatus | |
| Log | |
| Files | |
| Refs | |
| README | |
| LICENSE | |
| --- | |
| commit aaf279f6ddfb48146fc1a579efd83a55722910b5 | |
| parent d1b23e5509863fd0790261b2b388e687d5218d53 | |
| Author: Daniel Moch <[email protected]> | |
| Date: Tue, 23 Jun 2020 16:35:43 -0400 | |
| 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) | |
| Diffstat: | |
| M slstatus.1 | 5 ++++- | |
| M slstatus.c | 9 ++++++--- | |
| 2 files changed, 10 insertions(+), 4 deletions(-) | |
| --- | |
| diff --git a/slstatus.1 b/slstatus.1 | |
| @@ -1,4 +1,4 @@ | |
| -.Dd 2017-08-10 | |
| +.Dd 2020-06-23 | |
| .Dt SLSTATUS 1 | |
| .Os | |
| .Sh NAME | |
| @@ -7,6 +7,7 @@ | |
| .Sh SYNOPSIS | |
| .Nm | |
| .Op Fl s | |
| +.Op Fl 1 | |
| .Sh DESCRIPTION | |
| .Nm | |
| 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 | |
| .It Fl s | |
| Write to stdout instead of WM_NAME. | |
| +.It Fl 1 | |
| +Write once to stdout and quit. | |
| .El | |
| .Sh CUSTOMIZATION | |
| .Nm | |
| diff --git a/slstatus.c b/slstatus.c | |
| @@ -41,7 +41,7 @@ difftimespec(struct timespec *res, struct timespec *a, struct… | |
| static void | |
| usage(void) | |
| { | |
| - die("usage: %s [-s]", argv0); | |
| + die("usage: %s [-s] [-1]", argv0); | |
| } | |
| int | |
| @@ -56,6 +56,9 @@ main(int argc, char *argv[]) | |
| sflag = 0; | |
| ARGBEGIN { | |
| + case '1': | |
| + done = 1; | |
| + /* fallthrough */ | |
| case 's': | |
| sflag = 1; | |
| break; | |
| @@ -78,7 +81,7 @@ main(int argc, char *argv[]) | |
| die("XOpenDisplay: Failed to open display"); | |
| } | |
| - while (!done) { | |
| + do { | |
| if (clock_gettime(CLOCK_MONOTONIC, &start) < 0) { | |
| die("clock_gettime:"); | |
| } | |
| @@ -125,7 +128,7 @@ main(int argc, char *argv[]) | |
| } | |
| } | |
| } | |
| - } | |
| + } while (!done); | |
| if (!sflag) { | |
| XStoreName(dpy, DefaultRootWindow(dpy), NULL); |