From 80ba53531670f06b82a6592e878ed7e7a802b4e6 Mon Sep 17 00:00:00 2001 From: Malfurious Date: Sun, 3 Oct 2021 22:49:39 -0400 Subject: patch: control-clear Adds an additional configuration parameter, controlkeyclear. When set to 1, slock will no longer change to the failure color if a control key is pressed while the buffer is empty. This is useful if, for example, you wake your monitor up by pressing a control key and don't want to spoil the detection of failed unlocking attempts. --- config.def.h | 3 +++ slock.c | 5 +++-- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/config.def.h b/config.def.h index 83e4887..3639e91 100644 --- a/config.def.h +++ b/config.def.h @@ -11,3 +11,6 @@ static const char *colorname[NUMCOLS] = { /* treat a cleared input like a wrong password (color) */ static const int failonclear = 1; + +/* allow control key to trigger fail on clear */ +static const int controlkeyclear = 1; diff --git a/slock.c b/slock.c index 5f4fb7a..fa21209 100644 --- a/slock.c +++ b/slock.c @@ -189,8 +189,9 @@ readpw(Display *dpy, struct xrandr *rr, struct lock **locks, int nscreens, caps = !caps; break; default: - if (num && !iscntrl((int)buf[0]) && - (len + num < sizeof(passwd))) { + if (controlkeyclear && iscntrl((int)buf[0])) + continue; + if (num && (len + num < sizeof(passwd))) { memcpy(passwd + len, buf, num); len += num; } -- cgit v1.2.3