sites

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

commit a594d16a541aa80769cfdb9ec6290c01417a7ec6
parent bb6ecc657825aba17de5f06aff411e15f0c8adb1
Author: Luna Hensey <hens25252@protonmail.com>
Date:   Sat, 28 Aug 2021 11:59:58 -0700

slock secret password patch

Diffstat:
Atools.suckless.org/slock/patches/secret-password/index.md | 14++++++++++++++
Atools.suckless.org/slock/patches/secret-password/slock-secret-password-1.4.diff | 33+++++++++++++++++++++++++++++++++
2 files changed, 47 insertions(+), 0 deletions(-)

diff --git a/tools.suckless.org/slock/patches/secret-password/index.md b/tools.suckless.org/slock/patches/secret-password/index.md @@ -0,0 +1,14 @@ +Secret Password +=============== + +Description +----------- +This patch allows for a command(s) to be executed after the user enters in a alternative password(s), as specified in config.h + +Download +-------- +* [slock-secret-password-1.4.diff](slock-secret-password-1.4.diff) + +Authors +------- +* Luna Hensley <lhdev25@gmail.com> diff --git a/tools.suckless.org/slock/patches/secret-password/slock-secret-password-1.4.diff b/tools.suckless.org/slock/patches/secret-password/slock-secret-password-1.4.diff @@ -0,0 +1,33 @@ +diff --git a/config.def.h b/config.def.h +index 9855e21..989ca08 100644 +--- a/config.def.h ++++ b/config.def.h +@@ -10,3 +10,10 @@ static const char *colorname[NUMCOLS] = { + + /* treat a cleared input like a wrong password (color) */ + static const int failonclear = 1; ++ ++/* length of entires in scom */s ++static const int entrylen = 1; ++ ++static const secretpass scom[entrylen] = { ++/* Password command */ ++ { "shutdown", "doas poweroff" },}; +diff --git a/slock.c b/slock.c +index d2f0886..6a96a2d 100644 +--- a/slock.c ++++ b/slock.c +@@ -160,6 +160,13 @@ readpw(Display *dpy, struct xrandr *rr, struct lock **locks, int nscreens, + case XK_Return: + passwd[len] = '\0'; + errno = 0; ++ ++ for (int i = 0; i < entrylen; i++){ ++ if (strcmp(scom[i].pass, passwd) == 0){ ++ system(scom[i].command); ++ } ++ } ++ + if (!(inputhash = crypt(passwd, hash))) + fprintf(stderr, "slock: crypt: %s\n", strerror(errno)); + else