Compare commits

...

10 commits

Author SHA1 Message Date
Hiltjo Posthuma
a34d8fb432 slock.1: use standard wording for options
Remove the OPTIONS section and add an EXIT STATUS section.
2023-10-06 11:57:31 +02:00
Hiltjo Posthuma
e8bca65d62 write version to stdout like the man page says 2023-10-06 11:50:11 +02:00
Hiltjo Posthuma
ca6f30f621 slock.1: improve man page
* Fix all lint warnings.
* Remove "Op Ar arg..." in the description. It looks ugly.
* No need to set -offset left for .Bd literal.
2023-10-06 11:48:40 +02:00
Hiltjo Posthuma
2fec14c567 config.mk: no need to set CC 2023-10-06 11:41:19 +02:00
Hiltjo Posthuma
5678764412 Makefile: be verbose and remove options
Some things to improve at some point:

* Respect system/packaging CFLAGS/LDFLAGS (don't hardcode -Os -Wall -pedantic,
  -s, etc).
2023-10-06 11:39:40 +02:00
Hiltjo Posthuma
aecfb3f680 update LICENSE 2023-10-06 11:39:31 +02:00
Hiltjo Posthuma
4f045545a2 bump version to 1.5 2022-10-04 19:45:14 +02:00
Hiltjo Posthuma
265704d736 Makefile: explicit_bzero.c was copied twice (GNU make gives a warning) 2022-10-04 19:44:47 +02:00
Tobias Stoeckmann
35633d4567 Properly clear the last entered character
When enter is pressed, passwd[len] will be set to '\0'. Pressing
backspace is supposed to remove the last entered character.

But currently, the clearing has an off-by-one, as in setting
passwd[len] to '\0' just like enter would do.

You can also verify it by imagining len=1 and that it's impossible to
clear passwd[0] by pressing backspace with the current code.

Signed-off-by: Tobias Stoeckmann <tobias@stoeckmann.org>
2017-03-25 21:51:29 +01:00
Markus Teich
2d2a21a90a rm trailing whitespace in README 2016-11-23 00:29:18 +01:00
6 changed files with 42 additions and 53 deletions

View file

@ -4,6 +4,7 @@ MIT/X Consortium License
© 2014 Dimitris Papastamos <sin@2f30.org> © 2014 Dimitris Papastamos <sin@2f30.org>
© 2006-2014 Anselm R Garbe <anselm@garbe.us> © 2006-2014 Anselm R Garbe <anselm@garbe.us>
© 2014-2016 Laslo Hunhold <dev@frign.de> © 2014-2016 Laslo Hunhold <dev@frign.de>
© 2016-2023 Hiltjo Posthuma <hiltjo@codemadness.org>
Permission is hereby granted, free of charge, to any person obtaining a Permission is hereby granted, free of charge, to any person obtaining a
copy of this software and associated documentation files (the "Software"), copy of this software and associated documentation files (the "Software"),

View file

@ -6,56 +6,41 @@ include config.mk
SRC = slock.c ${COMPATSRC} SRC = slock.c ${COMPATSRC}
OBJ = ${SRC:.c=.o} OBJ = ${SRC:.c=.o}
all: options slock all: slock
options:
@echo slock build options:
@echo "CFLAGS = ${CFLAGS}"
@echo "LDFLAGS = ${LDFLAGS}"
@echo "CC = ${CC}"
.c.o: .c.o:
@echo CC $< ${CC} -c ${CFLAGS} $<
@${CC} -c ${CFLAGS} $<
${OBJ}: config.h config.mk arg.h util.h ${OBJ}: config.h config.mk arg.h util.h
config.h: config.h:
@echo creating $@ from config.def.h cp config.def.h $@
@cp config.def.h $@
slock: ${OBJ} slock: ${OBJ}
@echo CC -o $@ ${CC} -o $@ ${OBJ} ${LDFLAGS}
@${CC} -o $@ ${OBJ} ${LDFLAGS}
clean: clean:
@echo cleaning rm -f slock ${OBJ} slock-${VERSION}.tar.gz
@rm -f slock ${OBJ} slock-${VERSION}.tar.gz
dist: clean dist: clean
@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}
install: all install: all
@echo installing executable file to ${DESTDIR}${PREFIX}/bin mkdir -p ${DESTDIR}${PREFIX}/bin
@mkdir -p ${DESTDIR}${PREFIX}/bin cp -f slock ${DESTDIR}${PREFIX}/bin
@cp -f slock ${DESTDIR}${PREFIX}/bin chmod 755 ${DESTDIR}${PREFIX}/bin/slock
@chmod 755 ${DESTDIR}${PREFIX}/bin/slock chmod u+s ${DESTDIR}${PREFIX}/bin/slock
@chmod u+s ${DESTDIR}${PREFIX}/bin/slock mkdir -p ${DESTDIR}${MANPREFIX}/man1
@echo installing manual page to ${DESTDIR}${MANPREFIX}/man1 sed "s/VERSION/${VERSION}/g" <slock.1 >${DESTDIR}${MANPREFIX}/man1/slock.1
@mkdir -p ${DESTDIR}${MANPREFIX}/man1 chmod 644 ${DESTDIR}${MANPREFIX}/man1/slock.1
@sed "s/VERSION/${VERSION}/g" <slock.1 >${DESTDIR}${MANPREFIX}/man1/slock.1
@chmod 644 ${DESTDIR}${MANPREFIX}/man1/slock.1
uninstall: uninstall:
@echo removing executable file from ${DESTDIR}${PREFIX}/bin rm -f ${DESTDIR}${PREFIX}/bin/slock
@rm -f ${DESTDIR}${PREFIX}/bin/slock rm -f ${DESTDIR}${MANPREFIX}/man1/slock.1
@echo removing manual page from ${DESTDIR}${MANPREFIX}/man1
@rm -f ${DESTDIR}${MANPREFIX}/man1/slock.1
.PHONY: all options clean dist install uninstall .PHONY: all clean dist install uninstall

View file

@ -1,5 +1,5 @@
# slock version # slock version
VERSION = 1.4 VERSION = 1.5
# Customize below to fit your system # Customize below to fit your system
@ -27,6 +27,3 @@ COMPATSRC = explicit_bzero.c
#CPPFLAGS = -DVERSION=\"${VERSION}\" -D_BSD_SOURCE -D_NETBSD_SOURCE #CPPFLAGS = -DVERSION=\"${VERSION}\" -D_BSD_SOURCE -D_NETBSD_SOURCE
# On OpenBSD set COMPATSRC to empty # On OpenBSD set COMPATSRC to empty
#COMPATSRC = #COMPATSRC =
# compiler and linker
CC = cc

26
slock.1
View file

@ -1,5 +1,6 @@
.Dd 2016-08-23 .Dd October 6, 2023
.Dt SLOCK 1 .Dt SLOCK 1
.Os
.Sh NAME .Sh NAME
.Nm slock .Nm slock
.Nd simple X screen locker .Nd simple X screen locker
@ -9,31 +10,36 @@
.Op Ar cmd Op Ar arg ... .Op Ar cmd Op Ar arg ...
.Sh DESCRIPTION .Sh DESCRIPTION
.Nm .Nm
is a simple X screen locker. If provided, is a simple X screen locker.
.Ar cmd Op Ar arg ... If provided,
.Ar cmd
is executed after the screen has been locked. is executed after the screen has been locked.
.Sh OPTIONS .Pp
The options are as follows:
.Bl -tag -width Ds .Bl -tag -width Ds
.It Fl v .It Fl v
Print version information to stdout and exit. Print version information to stdout and exit.
.El .El
.Sh EXIT STATUS
.Ex -std
.Sh EXAMPLES
$
.Nm
/usr/sbin/s2ram
.Sh SECURITY CONSIDERATIONS .Sh SECURITY CONSIDERATIONS
To make sure a locked screen can not be bypassed by switching VTs To make sure a locked screen can not be bypassed by switching VTs
or killing the X server with Ctrl+Alt+Backspace, it is recommended or killing the X server with Ctrl+Alt+Backspace, it is recommended
to disable both in to disable both in
.Xr xorg.conf 5 .Xr xorg.conf 5
for maximum security: for maximum security:
.Bd -literal -offset left .Bd -literal
Section "ServerFlags" Section "ServerFlags"
Option "DontVTSwitch" "True" Option "DontVTSwitch" "True"
Option "DontZap" "True" Option "DontZap" "True"
EndSection EndSection
.Ed .Ed
.Sh EXAMPLES
$
.Nm
/usr/sbin/s2ram
.Sh CUSTOMIZATION .Sh CUSTOMIZATION
.Nm .Nm
can be customized by creating a custom config.h from config.def.h and can be customized by creating a custom config.h from config.def.h and
(re)compiling the source code. This keeps it fast, secure and simple. (re)compiling the source code.
This keeps it fast, secure and simple.

View file

@ -177,7 +177,7 @@ readpw(Display *dpy, struct xrandr *rr, struct lock **locks, int nscreens,
break; break;
case XK_BackSpace: case XK_BackSpace:
if (len) if (len)
passwd[len--] = '\0'; passwd[--len] = '\0';
break; break;
default: default:
if (num && !iscntrl((int)buf[0]) && if (num && !iscntrl((int)buf[0]) &&
@ -317,7 +317,7 @@ main(int argc, char **argv) {
ARGBEGIN { ARGBEGIN {
case 'v': case 'v':
fprintf(stderr, "slock-"VERSION"\n"); puts("slock-"VERSION);
return 0; return 0;
default: default:
usage(); usage();