commit 3096575b6b8fc8c4d08e0fa8afde95e40a1b4101
parent fa6d26d535379aa8035e7638e4f4aa0b4cf548e0
Author: Sebastian Karlsen <sebastian@karlsen.fr>
Date: Tue, 1 Mar 2022 14:59:08 +0100
[dwm][PATCH] Add doublepressquit patch to dwm
Diffstat:
2 files changed, 73 insertions(+), 0 deletions(-)
diff --git a/dwm.suckless.org/patches/doublepressquit/dwm-doublepressquit-6.3.diff b/dwm.suckless.org/patches/doublepressquit/dwm-doublepressquit-6.3.diff
@@ -0,0 +1,57 @@
+From 1ff5d32e691fa8fb001d0619b72da11ef8232009 Mon Sep 17 00:00:00 2001
+From: Sebastian Karlsen <suckless@karlsen.fr>
+Date: Tue, 1 Mar 2022 14:49:03 +0100
+Subject: [PATCH] Only quit dwm if binding is pressed twice quickly
+
+---
+ config.def.h | 3 +++
+ dwm.c | 19 ++++++++++++++++++-
+ 2 files changed, 21 insertions(+), 1 deletion(-)
+
+diff --git a/config.def.h b/config.def.h
+index a2ac963..8123671 100644
+--- a/config.def.h
++++ b/config.def.h
+@@ -21,6 +21,9 @@ static const char *colors[][3] = {
+ /* tagging */
+ static const char *tags[] = { "1", "2", "3", "4", "5", "6", "7", "8", "9" };
+
++/* Lockfile */
++static char lockfile[] = "/tmp/dwm.lock";
++
+ static const Rule rules[] = {
+ /* xprop(1):
+ * WM_CLASS(STRING) = instance, class
+diff --git a/dwm.c b/dwm.c
+index a96f33c..d55f186 100644
+--- a/dwm.c
++++ b/dwm.c
+@@ -1252,7 +1252,24 @@ propertynotify(XEvent *e)
+ void
+ quit(const Arg *arg)
+ {
+- running = 0;
++ FILE *fd = NULL;
++ struct stat filestat;
++
++ if ((fd = fopen(lockfile, "r")) && stat(lockfile, &filestat) == 0) {
++ fclose(fd);
++
++ if (filestat.st_ctime <= time(NULL)-2)
++ remove(lockfile);
++ }
++
++ if ((fd = fopen(lockfile, "r")) != NULL) {
++ fclose(fd);
++ remove(lockfile);
++ running = 0;
++ } else {
++ if ((fd = fopen(lockfile, "a")) != NULL)
++ fclose(fd);
++ }
+ }
+
+ Monitor *
+--
+2.35.1
+
diff --git a/dwm.suckless.org/patches/doublepressquit/index.md b/dwm.suckless.org/patches/doublepressquit/index.md
@@ -0,0 +1,16 @@
+doublepressquit
+===============
+
+Description
+-----------
+On the default keybinding of Mod-Shift-Q, it is possible to press it by
+accident, closing all your work. This patch makes it so dwm will only exit if
+the keybinding is pressed twice quickly (<= 2 seconds).
+
+Download
+--------
+* [dwm-doublepressquit-6.3.diff](dwm-doublepressquit-6.3.diff)
+
+Author
+------
+* Sebastian Karlsen - <suckless@karlsen.fr>