Introduction
Introduction Statistics Contact Development Disclaimer Help
slock-dpms-1.4.diff - sites - public wiki contents of suckless.org
git clone git://git.suckless.org/sites
Log
Files
Refs
---
slock-dpms-1.4.diff (1751B)
---
1 diff --git a/config.def.h b/config.def.h
2 index 9855e21..d01bd38 100644
3 --- a/config.def.h
4 +++ b/config.def.h
5 @@ -10,3 +10,6 @@ static const char *colorname[NUMCOLS] = {
6
7 /* treat a cleared input like a wrong password (color) */
8 static const int failonclear = 1;
9 +
10 +/* time in seconds before the monitor shuts down */
11 +static const int monitortime = 5;
12 diff --git a/slock.c b/slock.c
13 index d2f0886..f65a43b 100644
14 --- a/slock.c
15 +++ b/slock.c
16 @@ -15,6 +15,7 @@
17 #include <unistd.h>
18 #include <sys/types.h>
19 #include <X11/extensions/Xrandr.h>
20 +#include <X11/extensions/dpms.h>
21 #include <X11/keysym.h>
22 #include <X11/Xlib.h>
23 #include <X11/Xutil.h>
24 @@ -306,6 +307,7 @@ main(int argc, char **argv) {
25 const char *hash;
26 Display *dpy;
27 int s, nlocks, nscreens;
28 + CARD16 standby, suspend, off;
29
30 ARGBEGIN {
31 case 'v':
32 @@ -366,6 +368,20 @@ main(int argc, char **argv) {
33 if (nlocks != nscreens)
34 return 1;
35
36 + /* DPMS magic to disable the monitor */
37 + if (!DPMSCapable(dpy))
38 + die("slock: DPMSCapable failed\n");
39 + if (!DPMSEnable(dpy))
40 + die("slock: DPMSEnable failed\n");
41 + if (!DPMSGetTimeouts(dpy, &standby, &suspend, &off))
42 + die("slock: DPMSGetTimeouts failed\n");
43 + if (!standby || !suspend || !off)
44 + die("slock: at least one DPMS variable is zero\n");
45 + if (!DPMSSetTimeouts(dpy, monitortime, monitortime, monitortime…
46 + die("slock: DPMSSetTimeouts failed\n");
47 +
48 + XSync(dpy, 0);
49 +
50 /* run post-lock command */
51 if (argc > 0) {
52 switch (fork()) {
53 @@ -383,5 +399,9 @@ main(int argc, char **argv) {
54 /* everything is now blank. Wait for the correct password */
55 readpw(dpy, &rr, locks, nscreens, hash);
56
57 + /* reset DPMS values to inital ones */
58 + DPMSSetTimeouts(dpy, standby, suspend, off);
59 + XSync(dpy, 0);
60 +
61 return 0;
62 }
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.