sites

public wiki contents of suckless.org
git clone git://git.suckless.org/sites
Log | Files | Refs

commit 50bb4969c54facc0c5c136fec30c0d93a86d6260
parent 2bb81991c08e549b03b8e5432514d13369fb9e05
Author: Adrian Amaglio <adrian@amaglio.fr>
Date:   Sun,  2 Oct 2022 00:06:17 +0200

[slock][patch][auto-timeout] Updated auto-timeout patch for new slock version

Diffstat:
Atools.suckless.org/slock/patches/auto-timeout/slock-auto-timeout-20221002-35633d4.diff | 64++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
1 file changed, 64 insertions(+), 0 deletions(-)

diff --git a/tools.suckless.org/slock/patches/auto-timeout/slock-auto-timeout-20221002-35633d4.diff b/tools.suckless.org/slock/patches/auto-timeout/slock-auto-timeout-20221002-35633d4.diff @@ -0,0 +1,64 @@ +diff --git a/config.def.h b/config.def.h +index 9855e21..354980b 100644 +--- a/config.def.h ++++ b/config.def.h +@@ -10,3 +10,12 @@ static const char *colorname[NUMCOLS] = { + + /* treat a cleared input like a wrong password (color) */ + static const int failonclear = 1; ++ ++/* length of time (seconds) until [command] is executed */ ++static const int timeoffset = 60; ++ ++/* should [command] be run only once? */ ++static const int runonce = 0; ++ ++/* command to be run after [timeoffset] seconds has passed */ ++static const char *command = "doas poweroff"; +diff --git a/slock.c b/slock.c +index 5ae738c..5ece0ae 100644 +--- a/slock.c ++++ b/slock.c +@@ -19,11 +19,16 @@ + #include <X11/Xlib.h> + #include <X11/Xutil.h> + ++#include <time.h> ++ + #include "arg.h" + #include "util.h" + + char *argv0; + ++time_t lasttouched; ++int runflag = 0; ++ + enum { + INIT, + INPUT, +@@ -216,6 +221,16 @@ readpw(Display *dpy, struct xrandr *rr, struct lock **locks, int nscreens, + for (screen = 0; screen < nscreens; screen++) + XRaiseWindow(dpy, locks[screen]->win); + } ++ ++ time_t currenttime; ++ time(&currenttime); ++ ++ if (currenttime >= lasttouched + timeoffset){ ++ if (!runonce || !runflag){ ++ runflag = 1; ++ system(command); ++ } ++ } + } + } + +@@ -229,6 +244,8 @@ lockscreen(Display *dpy, struct xrandr *rr, int screen) + XSetWindowAttributes wa; + Cursor invisible; + ++ time(&lasttouched); ++ + if (dpy == NULL || screen < 0 || !(lock = malloc(sizeof(struct lock)))) + return NULL; +