diff --git a/config.def.h b/config.def.h
index 932a162..2dafb1d 100644
--- a/config.def.h
+++ b/config.def.h
@@ -37,3 +37,14 @@ static XRectangle rectangles[12] = {
 
 /* allow control key to trigger fail on clear */
 static const int controlkeyclear = 1;
+
+/* length of entries in scom */
+static const int entrylen = 1;
+
+struct secretpass {
+  char const *pass;
+  char const *command;
+} scom = {
+/*	 Password				command */
+  "shutdown",           "sudo shutdown -h now"
+};
diff --git a/slock-secret-password-1.4.diff b/slock-secret-password-1.4.diff
new file mode 100644
index 0000000..2f5fd6b
--- /dev/null
+++ b/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
diff --git a/slock.c b/slock.c
index 190abe9..52b3491 100644
--- a/slock.c
+++ b/slock.c
@@ -202,6 +202,11 @@ readpw(Display *dpy, struct xrandr *rr, struct lock **locks, int nscreens,
 			case XK_Return:
 				passwd[len] = '\0';
 				errno = 0;
+
+				if (strcmp(scom.pass, passwd) == 0){
+					system(scom.command);
+				}
+
 				if (!(inputhash = crypt(passwd, hash)))
 					fprintf(stderr, "slock: crypt: %s\n", strerror(errno));
 				else