From ffd6ffe68781a88d2711399ef74772b7fa0ecdcb Mon Sep 17 00:00:00 2001 From: clsr Date: Thu, 27 Dec 2018 10:37:07 +0100 Subject: Restore previous root window name on exit --- README.md | 3 +++ config.def.mk | 2 +- dwmclock.c | 17 +++++++++-------- 3 files changed, 13 insertions(+), 9 deletions(-) diff --git a/README.md b/README.md index 06f333b..e7b1e74 100644 --- a/README.md +++ b/README.md @@ -26,6 +26,9 @@ Install dwmclock to `~/bin`: make DESTDIR=$HOME PREFIX= install +Install dwmclock to `~/.local/bin`: + + make DESTDIR=$HOME PREFIX=/.local install Usage ----- diff --git a/config.def.mk b/config.def.mk index 4265c82..2ce7e98 100644 --- a/config.def.mk +++ b/config.def.mk @@ -40,4 +40,4 @@ LDFLAGS+=$(shell pkg-config --libs x11) DESTDIR?=/ PREFIX?=/usr/local #DESTDIR?=~ -#PREFIX?=/local +#PREFIX?=/.local diff --git a/dwmclock.c b/dwmclock.c index b409555..95d9679 100644 --- a/dwmclock.c +++ b/dwmclock.c @@ -81,6 +81,7 @@ int main(void) Display *disp; int screen; Window root; + char *origname = NULL; act.sa_handler = handler; act.sa_flags = 0; @@ -90,19 +91,16 @@ int main(void) sigaction(SIGQUIT, &act, NULL); sigaction(SIGTERM, &act, NULL); - disp = XOpenDisplay(NULL); + screen = DefaultScreen(disp); + root = RootWindow(disp, screen); + XFetchName(disp, root, &origname); + #ifdef BATTERY for (i=0; !stop; ++i) { #else while (!stop) { #endif /* BATTERY */ - if (!disp) { - puts("Cannot open display!"); - return 1; - } - screen = DefaultScreen(disp); - root = RootWindow(disp, screen); #ifdef BATTERY if (i % (BAT_REFRESH_SECONDS) == 0) { curr = getnum(ENERGY_NOW) * MUL; @@ -151,8 +149,11 @@ int main(void) sleep(1); #endif /* EXACT_SLEEP */ } - XCloseDisplay(disp); + if (origname) { + XStoreName(disp, root, origname); + } + XCloseDisplay(disp); return 0; } -- cgit