diff options
| author | Markus Teich <markus.teich@stusta.mhn.de> | 2015-12-26 13:13:25 +0100 | 
|---|---|---|
| committer | Markus Teich <markus.teich@stusta.mhn.de> | 2015-12-26 19:27:01 +0100 | 
| commit | e867c38123175d6f050e051ee6b00f4737a9712a (patch) | |
| tree | c5b69e98bf6f0258420228eac0d0f1cb25a4d57a | |
| parent | b95ee111c7625375716e848ec81af2f57ca35b02 (diff) | |
| download | slock-e867c38123175d6f050e051ee6b00f4737a9712a.tar.gz slock-e867c38123175d6f050e051ee6b00f4737a9712a.tar.xz  | |
add option to run command after screen is locked
| -rw-r--r-- | slock.c | 12 | 
1 files changed, 10 insertions, 2 deletions
@@ -289,7 +289,7 @@ lockscreen(Display *dpy, int screen)  static void  usage(void)  { -	fprintf(stderr, "usage: slock [-v]\n"); +	fprintf(stderr, "usage: slock [-v|POST_LOCK_CMD]\n");  	exit(1);  } @@ -303,7 +303,8 @@ main(int argc, char **argv) {  	if ((argc == 2) && !strcmp("-v", argv[1]))  		die("slock-%s, © 2006-2015 slock engineers\n", VERSION); -	else if (argc != 1) + +	if ((argc == 2) && !strcmp("-h", argv[1]))  		usage();  #ifdef __linux__ @@ -339,6 +340,13 @@ main(int argc, char **argv) {  		return 1;  	} +	if (argc >= 2 && fork() == 0) { +		if (dpy) +			close(ConnectionNumber(dpy)); +		execvp(argv[1], argv+1); +		die("slock: execvp %s failed: %s\n", argv[1], strerror(errno)); +	} +  	/* Everything is now blank. Now wait for the correct password. */  #ifdef HAVE_BSD_AUTH  	readpw(dpy);  | 
