slock-noxz

[fork] simple X display locker utility
git clone https://noxz.tech/git/slock-noxz.git
slock-noxz

commit: 4465c72f2210cd73a413347f1a27fd6e9ab26545
parent: 5a3df37012afb1c870ccc2d4f8a8577ec5f43824
author: Chris Noxz <chris@noxz.tech>
date:   Sun, 20 Jun 2021 15:16:13 +0200
Revert patch slock-message-20180626-8384a86.diff
Mconfig.def.h9---
Mslock.14-
Mslock.c77+-------------------
3 files changed, 3 insertions(+), 87 deletions(-)
diff --git a/config.def.h b/config.def.h
@@ -10,12 +10,3 @@ static const char *colorname[NUMCOLS] = {
 
 /* treat a cleared input like a wrong password (color) */
 static const int failonclear = 1;
-
-/* default message */
-static const char * message = "Suckless: Software that sucks less.";
-
-/* text color */
-static const char * text_color = "#ffffff";
-
-/* text size (must be a valid size) */
-static const char * text_size = "8x13";
diff --git a/slock.1 b/slock.1
@@ -6,7 +6,6 @@
 .Sh SYNOPSIS
 .Nm
 .Op Fl v
-.Op Fl m Ar message
 .Op Ar cmd Op Ar arg ...
 .Sh DESCRIPTION
 .Nm
@@ -17,9 +16,6 @@ is executed after the screen has been locked.
 .Bl -tag -width Ds
 .It Fl v
 Print version information to stdout and exit.
-.It Fl m Ar message
-Overrides default slock lock message.
-.TP
 .El
 .Sh SECURITY CONSIDERATIONS
 To make sure a locked screen can not be bypassed by switching VTs
diff --git a/slock.c b/slock.c
@@ -61,71 +61,6 @@ die(const char *errstr, ...)
 #include <fcntl.h>
 #include <linux/oom.h>
 
-static void
-writemessage(Display *dpy, Window win, int screen)
-{
-	int len, line_len, width, height, i, j, k, tab_replace, tab_size;
-	XGCValues gr_values;
-	XFontStruct *fontinfo;
-	XColor color, dummy;
-	GC gc;
-	fontinfo = XLoadQueryFont(dpy, text_size);
-	tab_size = 8 * XTextWidth(fontinfo, " ", 1);
-
-	XAllocNamedColor(dpy, DefaultColormap(dpy, screen),
-			 text_color, &color, &dummy);
-
-	gr_values.font = fontinfo->fid;
-	gr_values.foreground = color.pixel;
-	gc=XCreateGC(dpy,win,GCFont+GCForeground, &gr_values);
-
-
-	/*
-	 * Start formatting and drawing text
-	 */
-
-	len = strlen(message);
-
-	/* Max max line length (cut at '\n') */
-	line_len = 0;
-	k = 0;
-	for (i = j = 0; i < len; i++) {
-		if (message[i] == '\n') {
-			if (i - j > line_len)
-				line_len = i - j;
-			k++;
-			i++;
-			j = i;
-		}
-	}
-	/* If there is only one line */
-	if (line_len == 0)
-		line_len = len;
-
-	height = DisplayHeight(dpy, screen)*3/7 - (k*20)/3;
-	width  = (DisplayWidth(dpy, screen) - XTextWidth(fontinfo, message, line_len))/2;
-
-	/* Look for '\n' and print the text between them. */
-	for (i = j = k = 0; i <= len; i++) {
-		/* i == len is the special case for the last line */
-		if (i == len || message[i] == '\n') {
-			tab_replace = 0;
-			while (message[j] == '\t' && j < i) {
-				tab_replace++;
-				j++;
-			}
-
-			XDrawString(dpy, win, gc, width + tab_size*tab_replace, height + 20*k, message + j, i - j);
-			while (i < len && message[i] == '\n') {
-				i++;
-				j = i;
-				k++;
-			}
-		}
-	}
-}
-
-
 static void
 dontkillme(void)
 {
@@ -259,7 +194,6 @@ readpw(Display *dpy, struct xrandr *rr, struct lock **locks, int nscreens,
 					                     locks[screen]->win,
 					                     locks[screen]->colors[color]);
 					XClearWindow(dpy, locks[screen]->win);
-					writemessage(dpy, locks[screen]->win, screen);
 				}
 				oldc = color;
 			}
@@ -366,7 +300,7 @@ lockscreen(Display *dpy, struct xrandr *rr, int screen)
 static void
 usage(void)
 {
-	die("usage: slock [-v] [-m message] [cmd [arg ...]]\n");
+	die("usage: slock [-v] [cmd [arg ...]]\n");
 }
 
 int
@@ -385,9 +319,6 @@ main(int argc, char **argv) {
 	case 'v':
 		fprintf(stderr, "slock-"VERSION"\n");
 		return 0;
-	case 'm':
-		message = EARGF(usage());
-		break;
 	default:
 		usage();
 	} ARGEND
@@ -432,12 +363,10 @@ main(int argc, char **argv) {
 	if (!(locks = calloc(nscreens, sizeof(struct lock *))))
 		die("slock: out of memory\n");
 	for (nlocks = 0, s = 0; s < nscreens; s++) {
-		if ((locks[s] = lockscreen(dpy, &rr, s)) != NULL) {
-			writemessage(dpy, locks[s]->win, s);
+		if ((locks[s] = lockscreen(dpy, &rr, s)) != NULL)
 			nlocks++;
-		} else {
+		else
 			break;
-		}
 	}
 	XSync(dpy, 0);