From 515521eb0d9bee8edfcee7172b358d57358591c7 Mon Sep 17 00:00:00 2001 From: Adam Fordsmand Date: Fri, 12 Feb 2021 16:29:18 +0100 Subject: [PATCH] Update to slock so that it uses systemctl suspend --- config.def.h | 1 + config.h | 39 +++++++++++++++++++++++++++++++++++++++ explicit_bzero.o | Bin 1536 -> 1544 bytes slock | Bin 0 -> 23320 bytes slock.c | 8 ++++++-- slock.o | Bin 19664 -> 19184 bytes 6 files changed, 46 insertions(+), 2 deletions(-) create mode 100644 config.h create mode 100755 slock diff --git a/config.def.h b/config.def.h index 3345f1a..5eb17db 100644 --- a/config.def.h +++ b/config.def.h @@ -27,6 +27,7 @@ static const char * font_name = "-b&h-lucidabright-medium-r-normal--20-200-75-75 //-bitstream-charter-medium-i-normal--0-0-75-75-p-0-iso8859-1 #define SCREENSLEEP +//#define SCREENSLEEPBACKLIGHT /*Enable blur*/ #define BLUR diff --git a/config.h b/config.h new file mode 100644 index 0000000..5eb17db --- /dev/null +++ b/config.h @@ -0,0 +1,39 @@ +/* user and group to drop privileges to */ +static const char *user = "adam"; +static const char *group = "adam"; + +static const char *colorname[NUMCOLS] = { + [INIT] = "black", /* after initialization */ + [INPUT] = "#005577", /* during input */ + [FAILED] = "#CC3333", /* wrong password */ +}; + +/* treat a cleared input like a wrong password (color) */ +static const int failonclear = 1; + +/* time in seconds to cancel lock with mouse movement */ +static const int timetocancel = 4; + +/* default message */ +static const char * message = "Input Password:"; + +/* text color */ +static const char * text_color = "#ffffff"; + +/* text size (must be a valid size) */ +static const char * font_name = "-b&h-lucidabright-medium-r-normal--20-200-75-75-p-200-iso8859-1" ; + //-Misc-Fixed-Medium-R-Normal--20-200-75-75-C-100-ISO10646-1 + //-misc-fixed-medium-r-semicondensed--13-120-75-75-c-60-iso8859-1 + //-bitstream-charter-medium-i-normal--0-0-75-75-p-0-iso8859-1 + +#define SCREENSLEEP +//#define SCREENSLEEPBACKLIGHT + +/*Enable blur*/ +#define BLUR +/*Set blur radius*/ +static const int blurRadius=10; +/*Enable Pixelation*/ +#define PIXELATION +/*Set pixelation radius*/ +static const int pixelSize=30; diff --git a/explicit_bzero.o b/explicit_bzero.o index 4799a708e75f1d46ddfb481a4a5755f2a8ab695c..4a1f38e2ee9db95552d688e31c278bf12f35209f 100644 GIT binary patch delta 259 zcmZqR>EM~5A%2310S+9%EC&W&2A+xbjyfzrt^yFV02kjW0r5rRKJT7bX+ zLNRb{Udb%ZIEj^ok$tiwt1xE+RNP?lLl$|)q{#S(xr qpn8tUx~$rwKcG5SKxu9u%{)1mRhx0a(ri$g9ZIuK z)@Qsb$qm%~=RX9fLCs_V(j1dznc60AV+xwg${a1|zyy&pfU4l!T*xfW$m$Q|GEVMg zk)Hg5MM2jK$OCD00AgfNfUX%R$v)YXRh#PsRG9+fWGz;?$sMc`j4viHWVPp90M!yX MnUPU=@*ZX$05wS}j{pDw diff --git a/slock b/slock new file mode 100755 index 0000000000000000000000000000000000000000..85a9281ca9b64563abfcc892a5f260321200d3d5 GIT binary patch literal 23320 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 literal 0 HcmV?d00001 diff --git a/slock.c b/slock.c index 09eb667..c4833e8 100644 --- a/slock.c +++ b/slock.c @@ -262,7 +262,7 @@ readpw(Display *dpy, struct xrandr *rr, struct lock **locks, int nscreens, while (running && !XNextEvent(dpy, &ev)) { if (ev.type == KeyPress) { -#ifdef SCREENSLEEP +#ifdef SCREENSLEEPBACKLIGHT char* tmpSTR; if(0 > asprintf(&tmpSTR, "xbacklight -set %f", priorBackLight)) tmpSTR = "xbacklight -set 100"; system(tmpSTR); @@ -564,11 +564,15 @@ main(int argc, char **argv) { #endif -#ifdef SCREENSLEEP +#ifdef SCREENSLEEPBACKLIGHT priorBackLight = getPriorBackLight(); system("xbacklight -set 0"); #endif +#ifdef SCREENSLEEP + system("systemctl suspend"); +#endif + /* check for Xrandr support */ rr.active = XRRQueryExtension(dpy, &rr.evbase, &rr.errbase); diff --git a/slock.o b/slock.o index b81848a3d2a71081c7a4161b42c3933602bf1768..c3a32d50320cfd8d85145e5877bc9282bf40d3e2 100644 GIT binary patch delta 7299 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 AO#lD@ delta 7676 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 BSZe?P