update
This commit is contained in:
parent
59c750c40d
commit
25dc3f7ff2
2
README
2
README
|
@ -1,6 +1,6 @@
|
|||
slock - simple screen locker
|
||||
============================
|
||||
simple screen locker utility for X.
|
||||
simple screen locker utility for X.
|
||||
|
||||
|
||||
Requirements
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
/* user and group to drop privileges to */
|
||||
static const char *user = "nobody";
|
||||
static const char *group = "nogroup";
|
||||
static const char *user = "kc";
|
||||
static const char *group = "kc";
|
||||
|
||||
static const char *colorname[NUMCOLS] = {
|
||||
[INIT] = "black", /* after initialization */
|
||||
|
@ -18,4 +18,4 @@ static const int blurRadius=5;
|
|||
/*Enable Pixelation*/
|
||||
//#define PIXELATION
|
||||
/*Set pixelation radius*/
|
||||
static const int pixelSize=0;
|
||||
static const int pixelSize=2;
|
||||
|
|
2
config.h
2
config.h
|
@ -18,4 +18,4 @@ static const int blurRadius=5;
|
|||
/*Enable Pixelation*/
|
||||
//#define PIXELATION
|
||||
/*Set pixelation radius*/
|
||||
static const int pixelSize=0;
|
||||
static const int pixelSize=1;
|
||||
|
|
|
@ -0,0 +1,31 @@
|
|||
diff --git a/slock.c b/slock.c
|
||||
index 5ae738c..bd54be2 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/XF86keysym.h>
|
||||
|
||||
#include "arg.h"
|
||||
#include "util.h"
|
||||
@@ -157,6 +158,18 @@ readpw(Display *dpy, struct xrandr *rr, struct lock **locks, int nscreens,
|
||||
IsPrivateKeypadKey(ksym))
|
||||
continue;
|
||||
switch (ksym) {
|
||||
+ case XF86XK_AudioPlay:
|
||||
+ case XF86XK_AudioStop:
|
||||
+ case XF86XK_AudioPrev:
|
||||
+ case XF86XK_AudioNext:
|
||||
+ case XF86XK_AudioRaiseVolume:
|
||||
+ case XF86XK_AudioLowerVolume:
|
||||
+ case XF86XK_AudioMute:
|
||||
+ case XF86XK_AudioMicMute:
|
||||
+ case XF86XK_MonBrightnessDown:
|
||||
+ case XF86XK_MonBrightnessUp:
|
||||
+ XSendEvent(dpy, DefaultRootWindow(dpy), True, KeyPressMask, &ev);
|
||||
+ break;
|
||||
case XK_Return:
|
||||
passwd[len] = '\0';
|
||||
errno = 0;
|
51
slock.c
51
slock.c
|
@ -6,6 +6,7 @@
|
|||
|
||||
#include <ctype.h>
|
||||
#include <errno.h>
|
||||
#include <Imlib2.h>
|
||||
#include <grp.h>
|
||||
#include <pwd.h>
|
||||
#include <stdarg.h>
|
||||
|
@ -18,7 +19,7 @@
|
|||
#include <X11/keysym.h>
|
||||
#include <X11/Xlib.h>
|
||||
#include <X11/Xutil.h>
|
||||
#include <Imlib2.h>
|
||||
#include <X11/XF86keysym.h>
|
||||
|
||||
#include "arg.h"
|
||||
#include "util.h"
|
||||
|
@ -161,6 +162,18 @@ readpw(Display *dpy, struct xrandr *rr, struct lock **locks, int nscreens,
|
|||
IsPrivateKeypadKey(ksym))
|
||||
continue;
|
||||
switch (ksym) {
|
||||
case XF86XK_AudioPlay:
|
||||
case XF86XK_AudioStop:
|
||||
case XF86XK_AudioPrev:
|
||||
case XF86XK_AudioNext:
|
||||
case XF86XK_AudioRaiseVolume:
|
||||
case XF86XK_AudioLowerVolume:
|
||||
case XF86XK_AudioMute:
|
||||
case XF86XK_AudioMicMute:
|
||||
case XF86XK_MonBrightnessDown:
|
||||
case XF86XK_MonBrightnessUp:
|
||||
XSendEvent(dpy, DefaultRootWindow(dpy), True, KeyPressMask, &ev);
|
||||
break;
|
||||
case XK_Return:
|
||||
passwd[len] = '\0';
|
||||
errno = 0;
|
||||
|
@ -181,7 +194,7 @@ readpw(Display *dpy, struct xrandr *rr, struct lock **locks, int nscreens,
|
|||
break;
|
||||
case XK_BackSpace:
|
||||
if (len)
|
||||
passwd[len--] = '\0';
|
||||
passwd[--len] = '\0';
|
||||
break;
|
||||
default:
|
||||
if (num && !iscntrl((int)buf[0]) &&
|
||||
|
@ -206,13 +219,21 @@ readpw(Display *dpy, struct xrandr *rr, struct lock **locks, int nscreens,
|
|||
rre = (XRRScreenChangeNotifyEvent*)&ev;
|
||||
for (screen = 0; screen < nscreens; screen++) {
|
||||
if (locks[screen]->win == rre->window) {
|
||||
XResizeWindow(dpy, locks[screen]->win,
|
||||
rre->width, rre->height);
|
||||
if (rre->rotation == RR_Rotate_90 ||
|
||||
rre->rotation == RR_Rotate_270)
|
||||
XResizeWindow(dpy, locks[screen]->win,
|
||||
rre->height, rre->width);
|
||||
else
|
||||
XResizeWindow(dpy, locks[screen]->win,
|
||||
rre->width, rre->height);
|
||||
XClearWindow(dpy, locks[screen]->win);
|
||||
break;
|
||||
}
|
||||
}
|
||||
} else for (screen = 0; screen < nscreens; screen++)
|
||||
XRaiseWindow(dpy, locks[screen]->win);
|
||||
} else {
|
||||
for (screen = 0; screen < nscreens; screen++)
|
||||
XRaiseWindow(dpy, locks[screen]->win);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -324,8 +345,7 @@ main(int argc, char **argv) {
|
|||
const char *hash;
|
||||
Display *dpy;
|
||||
int s, nlocks, nscreens;
|
||||
int w, h;
|
||||
int up_x, up_y, up_w, up_h;
|
||||
|
||||
ARGBEGIN {
|
||||
case 'v':
|
||||
fprintf(stderr, "slock-"VERSION"\n");
|
||||
|
@ -365,29 +385,20 @@ main(int argc, char **argv) {
|
|||
die("slock: setgid: %s\n", strerror(errno));
|
||||
if (setuid(duid) < 0)
|
||||
die("slock: setuid: %s\n", strerror(errno));
|
||||
|
||||
/*Create screenshot Image*/
|
||||
Screen *scr = ScreenOfDisplay(dpy, DefaultScreen(dpy));
|
||||
image = imlib_load_image("/home/kc/Pictures/wallpaper/wallhaven-4ypdol.png");
|
||||
/* get its size */
|
||||
imlib_context_set_image(image);
|
||||
w = imlib_image_get_width();
|
||||
h = imlib_image_get_height();
|
||||
/* now we want to work with the buffer */
|
||||
imlib_blend_image_onto_image(image, 0,
|
||||
0, 0, w, h,
|
||||
0, 0, scr->width, scr->height);
|
||||
/*
|
||||
image = imlib_create_image(scr->width,scr->height);
|
||||
imlib_context_set_image(image);
|
||||
imlib_context_set_display(dpy);
|
||||
imlib_context_set_visual(DefaultVisual(dpy,0));
|
||||
imlib_context_set_drawable(RootWindow(dpy,XScreenNumberOfScreen(scr)));
|
||||
imlib_copy_drawable_to_image(0,0,0,scr->width,scr->height,0,0,1);
|
||||
*/
|
||||
|
||||
#ifdef BLUR
|
||||
|
||||
/*Blur function*/
|
||||
//Z imlib_image_blur(blurRadius);
|
||||
imlib_image_blur(blurRadius);
|
||||
#endif // BLUR
|
||||
|
||||
#ifdef PIXELATION
|
||||
|
|
31
slock.c.orig
31
slock.c.orig
|
@ -18,6 +18,7 @@
|
|||
#include <X11/keysym.h>
|
||||
#include <X11/Xlib.h>
|
||||
#include <X11/Xutil.h>
|
||||
#include <X11/XF86keysym.h>
|
||||
|
||||
#include "arg.h"
|
||||
#include "util.h"
|
||||
|
@ -157,6 +158,18 @@ readpw(Display *dpy, struct xrandr *rr, struct lock **locks, int nscreens,
|
|||
IsPrivateKeypadKey(ksym))
|
||||
continue;
|
||||
switch (ksym) {
|
||||
case XF86XK_AudioPlay:
|
||||
case XF86XK_AudioStop:
|
||||
case XF86XK_AudioPrev:
|
||||
case XF86XK_AudioNext:
|
||||
case XF86XK_AudioRaiseVolume:
|
||||
case XF86XK_AudioLowerVolume:
|
||||
case XF86XK_AudioMute:
|
||||
case XF86XK_AudioMicMute:
|
||||
case XF86XK_MonBrightnessDown:
|
||||
case XF86XK_MonBrightnessUp:
|
||||
XSendEvent(dpy, DefaultRootWindow(dpy), True, KeyPressMask, &ev);
|
||||
break;
|
||||
case XK_Return:
|
||||
passwd[len] = '\0';
|
||||
errno = 0;
|
||||
|
@ -177,7 +190,7 @@ readpw(Display *dpy, struct xrandr *rr, struct lock **locks, int nscreens,
|
|||
break;
|
||||
case XK_BackSpace:
|
||||
if (len)
|
||||
passwd[len--] = '\0';
|
||||
passwd[--len] = '\0';
|
||||
break;
|
||||
default:
|
||||
if (num && !iscntrl((int)buf[0]) &&
|
||||
|
@ -201,13 +214,21 @@ readpw(Display *dpy, struct xrandr *rr, struct lock **locks, int nscreens,
|
|||
rre = (XRRScreenChangeNotifyEvent*)&ev;
|
||||
for (screen = 0; screen < nscreens; screen++) {
|
||||
if (locks[screen]->win == rre->window) {
|
||||
XResizeWindow(dpy, locks[screen]->win,
|
||||
rre->width, rre->height);
|
||||
if (rre->rotation == RR_Rotate_90 ||
|
||||
rre->rotation == RR_Rotate_270)
|
||||
XResizeWindow(dpy, locks[screen]->win,
|
||||
rre->height, rre->width);
|
||||
else
|
||||
XResizeWindow(dpy, locks[screen]->win,
|
||||
rre->width, rre->height);
|
||||
XClearWindow(dpy, locks[screen]->win);
|
||||
break;
|
||||
}
|
||||
}
|
||||
} else for (screen = 0; screen < nscreens; screen++)
|
||||
XRaiseWindow(dpy, locks[screen]->win);
|
||||
} else {
|
||||
for (screen = 0; screen < nscreens; screen++)
|
||||
XRaiseWindow(dpy, locks[screen]->win);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -0,0 +1,9 @@
|
|||
--- slock.c
|
||||
+++ slock.c
|
||||
@@ -18,6 +18,7 @@
|
||||
#include <X11/keysym.h>
|
||||
#include <X11/Xlib.h>
|
||||
#include <X11/Xutil.h>
|
||||
|
||||
#include "arg.h"
|
||||
#include "util.h"
|
Loading…
Reference in New Issue