Introduction
Introduction Statistics Contact Development Disclaimer Help
slock-blur_pixelated_screen-1.4.diff - sites - public wiki contents of suckless…
git clone git://git.suckless.org/sites
Log
Files
Refs
---
slock-blur_pixelated_screen-1.4.diff (10550B)
---
1 From 36a4863f9a399740aaf8b1e01926485c0a055e1c Mon Sep 17 00:00:00 2001
2 From: Lars Niesen <[email protected]>
3 Date: Wed, 29 Apr 2020 13:52:42 +0200
4 Subject: [PATCH 1/8] Added Bg patch and screenshot capabilities
5
6 ---
7 config.mk | 2 +-
8 slock.c | 35 +++++++++++++++++++++++++++++++----
9 2 files changed, 32 insertions(+), 5 deletions(-)
10
11 diff --git a/config.mk b/config.mk
12 index 74429ae..987819e 100644
13 --- a/config.mk
14 +++ b/config.mk
15 @@ -12,7 +12,7 @@ X11LIB = /usr/X11R6/lib
16
17 # includes and libs
18 INCS = -I. -I/usr/include -I${X11INC}
19 -LIBS = -L/usr/lib -lc -lcrypt -L${X11LIB} -lX11 -lXext -lXrandr
20 +LIBS = -L/usr/lib -lc -lcrypt -L${X11LIB} -lX11 -lXext -lXrandr -lImlib2
21
22 # flags
23 CPPFLAGS = -DVERSION=\"${VERSION}\" -D_DEFAULT_SOURCE -DHAVE_SHADOW_H
24 diff --git a/slock.c b/slock.c
25 index 5ae738c..7c63f34 100644
26 --- a/slock.c
27 +++ b/slock.c
28 @@ -18,6 +18,7 @@
29 #include <X11/keysym.h>
30 #include <X11/Xlib.h>
31 #include <X11/Xutil.h>
32 +#include <Imlib2.h>
33
34 #include "arg.h"
35 #include "util.h"
36 @@ -35,6 +36,7 @@ struct lock {
37 int screen;
38 Window root, win;
39 Pixmap pmap;
40 + Pixmap bgmap;
41 unsigned long colors[NUMCOLS];
42 };
43
44 @@ -46,6 +48,8 @@ struct xrandr {
45
46 #include "config.h"
47
48 +Imlib_Image image;
49 +
50 static void
51 die(const char *errstr, ...)
52 {
53 @@ -190,9 +194,10 @@ readpw(Display *dpy, struct xrandr *rr, struct lock…
54 color = len ? INPUT : ((failure || failonclear)…
55 if (running && oldc != color) {
56 for (screen = 0; screen < nscreens; scr…
57 - XSetWindowBackground(dpy,
58 - locks[scre…
59 - locks[scre…
60 + if(locks[screen]->bgmap)
61 + XSetWindowBackgroundPixmap(dpy, locks[screen]->…
62 + else
63 + XSetWindowBackground(dpy, locks[screen]->win, l…
64 XClearWindow(dpy, locks[screen]…
65 }
66 oldc = color;
67 @@ -235,6 +240,17 @@ lockscreen(Display *dpy, struct xrandr *rr, int scr…
68 lock->screen = screen;
69 lock->root = RootWindow(dpy, lock->screen);
70
71 + if(image)
72 + {
73 + lock->bgmap = XCreatePixmap(dpy, lock->root, DisplayWidth(dpy, …
74 + imlib_context_set_image(image);
75 + imlib_context_set_display(dpy);
76 + imlib_context_set_visual(DefaultVisual(dpy, lock->screen));
77 + imlib_context_set_colormap(DefaultColormap(dpy, lock->screen));
78 + imlib_context_set_drawable(lock->bgmap);
79 + imlib_render_image_on_drawable(0, 0);
80 + imlib_free_image();
81 + }
82 for (i = 0; i < NUMCOLS; i++) {
83 XAllocNamedColor(dpy, DefaultColormap(dpy, lock->screen…
84 colorname[i], &color, &dummy);
85 @@ -251,6 +267,8 @@ lockscreen(Display *dpy, struct xrandr *rr, int scre…
86 CopyFromParent,
87 DefaultVisual(dpy, lock->screen),
88 CWOverrideRedirect | CWBackPixel, &wa…
89 + if(lock->bgmap)
90 + XSetWindowBackgroundPixmap(dpy, lock->win, lock->bgmap);
91 lock->pmap = XCreateBitmapFromData(dpy, lock->win, curs, 8, 8);
92 invisible = XCreatePixmapCursor(dpy, lock->pmap, lock->pmap,
93 &color, &color, 0, 0);
94 @@ -354,7 +372,16 @@ main(int argc, char **argv) {
95 die("slock: setgid: %s\n", strerror(errno));
96 if (setuid(duid) < 0)
97 die("slock: setuid: %s\n", strerror(errno));
98 -
99 +
100 + /*Create screenshot Image*/
101 + Screen *scr = ScreenOfDisplay(dpy, DefaultScreen(dpy));
102 + image = imlib_create_image(scr->width,scr->height);
103 + imlib_context_set_image(image);
104 + imlib_context_set_display(dpy);
105 + imlib_context_set_visual(DefaultVisual(dpy,0));
106 + imlib_context_set_drawable(RootWindow(dpy,XScreenNumberOfScreen…
107 + imlib_copy_drawable_to_image(0,0,0,scr->width,scr->height,0,0,1…
108 +
109 /* check for Xrandr support */
110 rr.active = XRRQueryExtension(dpy, &rr.evbase, &rr.errbase);
111
112 --
113 2.27.0
114
115
116 From 9d89604ac52b0949d047dae2f9b78cb5085ee1a2 Mon Sep 17 00:00:00 2001
117 From: Lars Niesen <[email protected]>
118 Date: Wed, 29 Apr 2020 14:15:59 +0200
119 Subject: [PATCH 2/8] Added blur function
120
121 ---
122 config.def.h | 3 +++
123 slock.c | 3 ++-
124 2 files changed, 5 insertions(+), 1 deletion(-)
125
126 diff --git a/config.def.h b/config.def.h
127 index c8e52d6..fcc1b39 100644
128 --- a/config.def.h
129 +++ b/config.def.h
130 @@ -10,3 +10,6 @@ static const char *colorname[NUMCOLS] = {
131
132 /* treat a cleared input like a wrong password (color) */
133 static const int failonclear = 1;
134 +
135 +/*Set Blur radius*/
136 +static const int blurRadius=5;
137 \ No newline at end of file
138 diff --git a/slock.c b/slock.c
139 index 7c63f34..0f24cd7 100644
140 --- a/slock.c
141 +++ b/slock.c
142 @@ -372,7 +372,7 @@ main(int argc, char **argv) {
143 die("slock: setgid: %s\n", strerror(errno));
144 if (setuid(duid) < 0)
145 die("slock: setuid: %s\n", strerror(errno));
146 -
147 +
148 /*Create screenshot Image*/
149 Screen *scr = ScreenOfDisplay(dpy, DefaultScreen(dpy));
150 image = imlib_create_image(scr->width,scr->height);
151 @@ -381,6 +381,7 @@ main(int argc, char **argv) {
152 imlib_context_set_visual(DefaultVisual(dpy,0));
153 imlib_context_set_drawable(RootWindow(dpy,XScreenNumberOfScreen…
154 imlib_copy_drawable_to_image(0,0,0,scr->width,scr->height,0,0,1…
155 + imlib_image_blur(blurRadius);
156
157 /* check for Xrandr support */
158 rr.active = XRRQueryExtension(dpy, &rr.evbase, &rr.errbase);
159 --
160 2.27.0
161
162
163 From 069aabd7e30244befd4efe74c85d3468ed076c21 Mon Sep 17 00:00:00 2001
164 From: Lars Niesen <[email protected]>
165 Date: Wed, 29 Apr 2020 17:33:09 +0200
166 Subject: [PATCH 4/8] added Pixelation
167
168 ---
169 config.def.h | 3 ++-
170 slock.c | 42 ++++++++++++++++++++++++++++++++++++++++++
171 2 files changed, 44 insertions(+), 1 deletion(-)
172
173 diff --git a/config.def.h b/config.def.h
174 index fcc1b39..1c1aef3 100644
175 --- a/config.def.h
176 +++ b/config.def.h
177 @@ -12,4 +12,5 @@ static const char *colorname[NUMCOLS] = {
178 static const int failonclear = 1;
179
180 /*Set Blur radius*/
181 -static const int blurRadius=5;
182 \ No newline at end of file
183 +static const int blurRadius=0;
184 +static const int pixelSize=5;
185 diff --git a/slock.c b/slock.c
186 index 0f24cd7..33ca569 100644
187 --- a/slock.c
188 +++ b/slock.c
189 @@ -381,7 +381,49 @@ main(int argc, char **argv) {
190 imlib_context_set_visual(DefaultVisual(dpy,0));
191 imlib_context_set_drawable(RootWindow(dpy,XScreenNumberOfScreen…
192 imlib_copy_drawable_to_image(0,0,0,scr->width,scr->height,0,0,1…
193 +
194 + /*Blur function*/
195 imlib_image_blur(blurRadius);
196 +
197 +
198 + /*Pixelation*/
199 + int width = scr->width;
200 + int height = scr->height;
201 +
202 + for(int y = 0; y < height; y += pixelSize)
203 + {
204 + for(int x = 0; x < width; x += pixelSize)
205 + {
206 + int red = 0;
207 + int green = 0;
208 + int blue = 0;
209 +
210 + Imlib_Color pixel;
211 + Imlib_Color* pp;
212 + pp = &pixel;
213 + for(int j = 0; j < pixelSize && j < height; j++)
214 + {
215 + for(int i = 0; i < pixelSize && i < wid…
216 + {
217 + imlib_image_query_pixel(x+i,y+j…
218 + red += pixel.red;
219 + green += pixel.green;
220 + blue += pixel.blue;
221 + }
222 + }
223 + red /= (pixelSize*pixelSize);
224 + green /= (pixelSize*pixelSize);
225 + blue /= (pixelSize*pixelSize);
226 + printf("R/G/B: %i/%i/%i\n",red,green,blue);
227 + imlib_context_set_color(red,green,blue,pixel.al…
228 + imlib_image_fill_rectangle(x,y,pixelSize,pixelS…
229 + red = 0;
230 + green = 0;
231 + blue = 0;
232 + }
233 + }
234 +
235 +
236
237 /* check for Xrandr support */
238 rr.active = XRRQueryExtension(dpy, &rr.evbase, &rr.errbase);
239 --
240 2.27.0
241
242
243 From 109bac015c1c7fbf8440fb42588fe7e0e9cb5e62 Mon Sep 17 00:00:00 2001
244 From: Lars Niesen <[email protected]>
245 Date: Wed, 29 Apr 2020 17:42:39 +0200
246 Subject: [PATCH 6/8] removed debug printf
247
248 ---
249 slock.c | 1 -
250 1 file changed, 1 deletion(-)
251
252 diff --git a/slock.c b/slock.c
253 index 33ca569..f54c459 100644
254 --- a/slock.c
255 +++ b/slock.c
256 @@ -414,7 +414,6 @@ main(int argc, char **argv) {
257 red /= (pixelSize*pixelSize);
258 green /= (pixelSize*pixelSize);
259 blue /= (pixelSize*pixelSize);
260 - printf("R/G/B: %i/%i/%i\n",red,green,blue);
261 imlib_context_set_color(red,green,blue,pixel.al…
262 imlib_image_fill_rectangle(x,y,pixelSize,pixelS…
263 red = 0;
264 --
265 2.27.0
266
267
268 From a13a0f4ac86f82e4dff145b7ebd93e52d07492c9 Mon Sep 17 00:00:00 2001
269 From: Lars Niesen <[email protected]>
270 Date: Sun, 3 May 2020 18:03:38 +0200
271 Subject: [PATCH 7/8] Changed compilerflag to fast
272
273 ---
274 config.mk | 2 +-
275 1 file changed, 1 insertion(+), 1 deletion(-)
276
277 diff --git a/config.mk b/config.mk
278 index 987819e..d0c2f01 100644
279 --- a/config.mk
280 +++ b/config.mk
281 @@ -16,7 +16,7 @@ LIBS = -L/usr/lib -lc -lcrypt -L${X11LIB} -lX11 -lXext…
282
283 # flags
284 CPPFLAGS = -DVERSION=\"${VERSION}\" -D_DEFAULT_SOURCE -DHAVE_SHADOW_H
285 -CFLAGS = -std=c99 -pedantic -Wall -Os ${INCS} ${CPPFLAGS}
286 +CFLAGS = -std=c99 -pedantic -Wall -Ofast ${INCS} ${CPPFLAGS}
287 LDFLAGS = -s ${LIBS}
288 COMPATSRC = explicit_bzero.c
289
290 --
291 2.27.0
292
293
294 From 31a7001c4954606c066cc3df4318fafd6d216bcd Mon Sep 17 00:00:00 2001
295 From: Lars Niesen <[email protected]>
296 Date: Mon, 4 May 2020 10:00:40 +0200
297 Subject: [PATCH 8/8] Added defines for BLUR/PIXELATION to remove from co…
298 compilation
299
300 ---
301 config.def.h | 11 ++++++++---
302 slock.c | 9 ++++++---
303 2 files changed, 14 insertions(+), 6 deletions(-)
304
305 diff --git a/config.def.h b/config.def.h
306 index 1c1aef3..5407953 100644
307 --- a/config.def.h
308 +++ b/config.def.h
309 @@ -11,6 +11,11 @@ static const char *colorname[NUMCOLS] = {
310 /* treat a cleared input like a wrong password (color) */
311 static const int failonclear = 1;
312
313 -/*Set Blur radius*/
314 -static const int blurRadius=0;
315 -static const int pixelSize=5;
316 +/*Enable blur*/
317 +#define BLUR
318 +/*Set blur radius*/
319 +static const int blurRadius=5;
320 +/*Enable Pixelation*/
321 +//#define PIXELATION
322 +/*Set pixelation radius*/
323 +static const int pixelSize=0;
324 diff --git a/slock.c b/slock.c
325 index f54c459..1a4d6e3 100644
326 --- a/slock.c
327 +++ b/slock.c
328 @@ -381,11 +381,14 @@ main(int argc, char **argv) {
329 imlib_context_set_visual(DefaultVisual(dpy,0));
330 imlib_context_set_drawable(RootWindow(dpy,XScreenNumberOfScreen…
331 imlib_copy_drawable_to_image(0,0,0,scr->width,scr->height,0,0,1…
332 -
333 +
334 +#ifdef BLUR
335 +
336 /*Blur function*/
337 imlib_image_blur(blurRadius);
338 +#endif // BLUR
339
340 -
341 +#ifdef PIXELATION
342 /*Pixelation*/
343 int width = scr->width;
344 int height = scr->height;
345 @@ -423,7 +426,7 @@ main(int argc, char **argv) {
346 }
347
348
349 -
350 +#endif
351 /* check for Xrandr support */
352 rr.active = XRRQueryExtension(dpy, &rr.evbase, &rr.errbase);
353
354 --
355 2.27.0
356
You are viewing proxied material from suckless.org. The copyright of proxied material belongs to its original authors. Any comments or complaints in relation to proxied material should be directed to the original authors of the content concerned. Please see the disclaimer for more details.