commit a594d16a541aa80769cfdb9ec6290c01417a7ec6
Author: Luna Hensey <[email protected]>
Date: Sat Aug 28 11:59:58 2021 -0700
slock secret password patch
diff --git a/tools.suckless.org/slock/patches/secret-password/index.md
b/tools.suckless.org/slock/patches/secret-password/index.md
new file mode 100644
index 00000000..48e14ee6
--- /dev/null
+++ 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 <[email protected]>
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
new file mode 100644
index 00000000..2f5fd6bb
--- /dev/null
+++
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] = '+
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
", strerror(errno));
+ else