~kris/suckless

slock

7dc450118fbc31a3a04568f814392870d616a615 — bakkeby 5 years ago d7b259b
Adding failure-command patch
4 files changed, 29 insertions(+), 0 deletions(-)

M README.md
M config.def.h
M patches.def.h
M slock.c
M README.md => README.md +5 -0
@@ 26,6 26,8 @@ slock tool, how to install it and how it works.

### Changelog:

2021-09-09 - Added the failure-command patch

2021-06-08 - Added the color message patch

2020-08-03 - Added alpha, keypress_feedback and blur_pixelated_screen patches


@@ 64,6 66,9 @@ slock tool, how to install it and how it works.
      - the monitor will automatically be activated by pressing a key or moving the mouse and the
        password can be entered then

   - [failure-command](https://tools.suckless.org/slock/patches/failure-command/)
      - allows for a command to be run after a specified number of incorrect attempts

   - [keypress_feedback](https://tools.suckless.org/slock/patches/keypress-feedback/)
      - draws random blocks on the screen to display keypress feedback


M config.def.h => config.def.h +9 -0
@@ 56,6 56,15 @@ static const float alpha = 0.9;
/* treat a cleared input like a wrong password (color) */
static const int failonclear = 1;

#if FAILURE_COMMAND_PATCH
/* number of failed password attempts until failcommand is executed.
   Set to 0 to disable */
static const int failcount = 0;

/* command to be executed after [failcount] failed password attempts */
static const char *failcommand = "shutdown";
#endif // FAILURE_COMMAND_PATCH

#if BLUR_PIXELATED_SCREEN_PATCH
/* Enable blur */
#define BLUR

M patches.def.h => patches.def.h +5 -0
@@ 60,6 60,11 @@
 */
#define DPMS_PATCH 0

/* This patch allows for a command to be run after a specified number of incorrect attempts.
 * https://tools.suckless.org/slock/patches/failure-command/
 */
#define FAILURE_COMMAND_PATCH 0

/* Draws random blocks on the screen to display keypress feedback.
 * https://tools.suckless.org/slock/patches/keypress-feedback/
 * https://patch-diff.githubusercontent.com/raw/phenax/bslock/pull/2.diff

M slock.c => slock.c +10 -0
@@ 43,6 43,9 @@
#include "util.h"

char *argv0;
#if FAILURE_COMMAND_PATCH
int failtrack = 0;
#endif // FAILURE_COMMAND_PATCH

#if QUICKCANCEL_PATCH
static time_t locktime;


@@ 272,6 275,13 @@ readpw(Display *dpy, struct xrandr *rr, struct lock **locks, int nscreens,
				if (running) {
					XBell(dpy, 100);
					failure = 1;
					#if FAILURE_COMMAND_PATCH
					failtrack++;

					if (failtrack >= failcount && failcount != 0) {
						system(failcommand);
					}
					#endif // FAILURE_COMMAND_PATCH
				}
				explicit_bzero(&passwd, sizeof(passwd));
				len = 0;