1
0
mirror of https://github.com/tiyn/slock.git synced 2025-10-18 13:51:20 +02:00

4 Commits

Author SHA1 Message Date
TiynGER
614ca8a08a new option 2020-03-31 11:13:48 +02:00
TiynGER
45193c468d new option 2020-03-31 11:12:36 +02:00
TiynGER
a604d3ccc3 changing group 2020-03-29 21:20:41 +02:00
TiynGER
9ea097e951 adding README 2020-03-29 19:32:47 +02:00
7 changed files with 15 additions and 106 deletions

3
.gitignore vendored
View File

@@ -1,3 +0,0 @@
slock
*.o
config.h

View File

@@ -36,7 +36,7 @@ dist: clean
@echo creating dist tarball @echo creating dist tarball
@mkdir -p slock-${VERSION} @mkdir -p slock-${VERSION}
@cp -R LICENSE Makefile README slock.1 config.mk \ @cp -R LICENSE Makefile README slock.1 config.mk \
${SRC} config.def.h arg.h util.h slock-${VERSION} ${SRC} explicit_bzero.c config.def.h arg.h util.h slock-${VERSION}
@tar -cf slock-${VERSION}.tar slock-${VERSION} @tar -cf slock-${VERSION}.tar slock-${VERSION}
@gzip slock-${VERSION}.tar @gzip slock-${VERSION}.tar
@rm -rf slock-${VERSION} @rm -rf slock-${VERSION}

7
README.md Normal file
View File

@@ -0,0 +1,7 @@
# slock
This is my patched version of st. The base version is directly from suckless.org.
This belongs to my larbs installation script.
## Patches
The list below shows the currently applied patches to the master branch.
- slock-dpms-1.4.diff (turns off the monitor after a given time)

View File

@@ -6,8 +6,10 @@ static const char *colorname[NUMCOLS] = {
[INIT] = "black", /* after initialization */ [INIT] = "black", /* after initialization */
[INPUT] = "#005577", /* during input */ [INPUT] = "#005577", /* during input */
[FAILED] = "#CC3333", /* wrong password */ [FAILED] = "#CC3333", /* wrong password */
[CAPS] = "red", /* CapsLock on */
}; };
/* treat a cleared input like a wrong password (color) */ /* treat a cleared input like a wrong password (color) */
static const int failonclear = 1; static const int failonclear = 1;
/* time in seconds before the monitor shuts down */
static const int monitortime = 3;

View File

@@ -1,5 +1,5 @@
# slock version # slock version
VERSION = 1.5 VERSION = 1.4
# Customize below to fit your system # Customize below to fit your system

View File

@@ -1,88 +0,0 @@
From da1721b1b4bb0aa8f94537ddd2a3eada1df00a30 Mon Sep 17 00:00:00 2001
From: Max Schillinger <maxschillinger@web.de>
Date: Wed, 21 Sep 2022 19:56:58 +0200
Subject: [PATCH] Update capscolor patch to match the latest slock commit
(35633d4)
---
config.def.h | 1 +
slock.c | 15 ++++++++++++---
2 files changed, 13 insertions(+), 3 deletions(-)
diff --git a/config.def.h b/config.def.h
index 9855e21..6288856 100644
--- a/config.def.h
+++ b/config.def.h
@@ -6,6 +6,7 @@ static const char *colorname[NUMCOLS] = {
[INIT] = "black", /* after initialization */
[INPUT] = "#005577", /* during input */
[FAILED] = "#CC3333", /* wrong password */
+ [CAPS] = "red", /* CapsLock on */
};
/* treat a cleared input like a wrong password (color) */
diff --git a/slock.c b/slock.c
index 5ae738c..5f4fb7a 100644
--- a/slock.c
+++ b/slock.c
@@ -18,6 +18,7 @@
#include <X11/keysym.h>
#include <X11/Xlib.h>
#include <X11/Xutil.h>
+#include <X11/XKBlib.h>
#include "arg.h"
#include "util.h"
@@ -28,6 +29,7 @@ enum {
INIT,
INPUT,
FAILED,
+ CAPS,
NUMCOLS
};
@@ -130,16 +132,20 @@ readpw(Display *dpy, struct xrandr *rr, struct lock **locks, int nscreens,
{
XRRScreenChangeNotifyEvent *rre;
char buf[32], passwd[256], *inputhash;
- int num, screen, running, failure, oldc;
- unsigned int len, color;
+ int caps, num, screen, running, failure, oldc;
+ unsigned int len, color, indicators;
KeySym ksym;
XEvent ev;
len = 0;
+ caps = 0;
running = 1;
failure = 0;
oldc = INIT;
+ if (!XkbGetIndicatorState(dpy, XkbUseCoreKbd, &indicators))
+ caps = indicators & 1;
+
while (running && !XNextEvent(dpy, &ev)) {
if (ev.type == KeyPress) {
explicit_bzero(&buf, sizeof(buf));
@@ -179,6 +185,9 @@ readpw(Display *dpy, struct xrandr *rr, struct lock **locks, int nscreens,
if (len)
passwd[--len] = '\0';
break;
+ case XK_Caps_Lock:
+ caps = !caps;
+ break;
default:
if (num && !iscntrl((int)buf[0]) &&
(len + num < sizeof(passwd))) {
@@ -187,7 +196,7 @@ readpw(Display *dpy, struct xrandr *rr, struct lock **locks, int nscreens,
}
break;
}
- color = len ? INPUT : ((failure || failonclear) ? FAILED : INIT);
+ color = len ? (caps ? CAPS : INPUT) : (failure || failonclear ? FAILED : INIT);
if (running && oldc != color) {
for (screen = 0; screen < nscreens; screen++) {
XSetWindowBackground(dpy,
--
2.37.3

15
slock.c
View File

@@ -18,7 +18,6 @@
#include <X11/keysym.h> #include <X11/keysym.h>
#include <X11/Xlib.h> #include <X11/Xlib.h>
#include <X11/Xutil.h> #include <X11/Xutil.h>
#include <X11/XKBlib.h>
#include "arg.h" #include "arg.h"
#include "util.h" #include "util.h"
@@ -29,7 +28,6 @@ enum {
INIT, INIT,
INPUT, INPUT,
FAILED, FAILED,
CAPS,
NUMCOLS NUMCOLS
}; };
@@ -132,20 +130,16 @@ readpw(Display *dpy, struct xrandr *rr, struct lock **locks, int nscreens,
{ {
XRRScreenChangeNotifyEvent *rre; XRRScreenChangeNotifyEvent *rre;
char buf[32], passwd[256], *inputhash; char buf[32], passwd[256], *inputhash;
int caps, num, screen, running, failure, oldc; int num, screen, running, failure, oldc;
unsigned int len, color, indicators; unsigned int len, color;
KeySym ksym; KeySym ksym;
XEvent ev; XEvent ev;
len = 0; len = 0;
caps = 0;
running = 1; running = 1;
failure = 0; failure = 0;
oldc = INIT; oldc = INIT;
if (!XkbGetIndicatorState(dpy, XkbUseCoreKbd, &indicators))
caps = indicators & 1;
while (running && !XNextEvent(dpy, &ev)) { while (running && !XNextEvent(dpy, &ev)) {
if (ev.type == KeyPress) { if (ev.type == KeyPress) {
explicit_bzero(&buf, sizeof(buf)); explicit_bzero(&buf, sizeof(buf));
@@ -185,9 +179,6 @@ readpw(Display *dpy, struct xrandr *rr, struct lock **locks, int nscreens,
if (len) if (len)
passwd[--len] = '\0'; passwd[--len] = '\0';
break; break;
case XK_Caps_Lock:
caps = !caps;
break;
default: default:
if (num && !iscntrl((int)buf[0]) && if (num && !iscntrl((int)buf[0]) &&
(len + num < sizeof(passwd))) { (len + num < sizeof(passwd))) {
@@ -196,7 +187,7 @@ readpw(Display *dpy, struct xrandr *rr, struct lock **locks, int nscreens,
} }
break; break;
} }
color = len ? (caps ? CAPS : INPUT) : (failure || failonclear ? FAILED : INIT); color = len ? INPUT : ((failure || failonclear) ? FAILED : INIT);
if (running && oldc != color) { if (running && oldc != color) {
for (screen = 0; screen < nscreens; screen++) { for (screen = 0; screen < nscreens; screen++) {
XSetWindowBackground(dpy, XSetWindowBackground(dpy,