dwm-doublepressquit-6.3.diff - sites - public wiki contents of suckless.org | |
git clone git://git.suckless.org/sites | |
Log | |
Files | |
Refs | |
--- | |
dwm-doublepressquit-6.3.diff (1327B) | |
--- | |
1 From 1ff5d32e691fa8fb001d0619b72da11ef8232009 Mon Sep 17 00:00:00 2001 | |
2 From: Sebastian Karlsen <[email protected]> | |
3 Date: Tue, 1 Mar 2022 14:49:03 +0100 | |
4 Subject: [PATCH] Only quit dwm if binding is pressed twice quickly | |
5 | |
6 --- | |
7 config.def.h | 3 +++ | |
8 dwm.c | 19 ++++++++++++++++++- | |
9 2 files changed, 21 insertions(+), 1 deletion(-) | |
10 | |
11 diff --git a/config.def.h b/config.def.h | |
12 index a2ac963..8123671 100644 | |
13 --- a/config.def.h | |
14 +++ b/config.def.h | |
15 @@ -21,6 +21,9 @@ static const char *colors[][3] = { | |
16 /* tagging */ | |
17 static const char *tags[] = { "1", "2", "3", "4", "5", "6", "7", "8", "… | |
18 | |
19 +/* Lockfile */ | |
20 +static char lockfile[] = "/tmp/dwm.lock"; | |
21 + | |
22 static const Rule rules[] = { | |
23 /* xprop(1): | |
24 * WM_CLASS(STRING) = instance, class | |
25 diff --git a/dwm.c b/dwm.c | |
26 index a96f33c..d55f186 100644 | |
27 --- a/dwm.c | |
28 +++ b/dwm.c | |
29 @@ -1252,7 +1252,24 @@ propertynotify(XEvent *e) | |
30 void | |
31 quit(const Arg *arg) | |
32 { | |
33 - running = 0; | |
34 + FILE *fd = NULL; | |
35 + struct stat filestat; | |
36 + | |
37 + if ((fd = fopen(lockfile, "r")) && stat(lockfile, &filestat) ==… | |
38 + fclose(fd); | |
39 + | |
40 + if (filestat.st_ctime <= time(NULL)-2) | |
41 + remove(lockfile); | |
42 + } | |
43 + | |
44 + if ((fd = fopen(lockfile, "r")) != NULL) { | |
45 + fclose(fd); | |
46 + remove(lockfile); | |
47 + running = 0; | |
48 + } else { | |
49 + if ((fd = fopen(lockfile, "a")) != NULL) | |
50 + fclose(fd); | |
51 + } | |
52 } | |
53 | |
54 Monitor * | |
55 -- | |
56 2.35.1 | |
57 |