apply dpms patch
Turns the monitor off after some time.
parent
f8304db996
commit
69f39f0bf8
|
|
@ -36,3 +36,6 @@ static const int blurRadius=5;
|
|||
//#define PIXELATION
|
||||
/*Set pixelation radius*/
|
||||
static const int pixelSize=0;
|
||||
|
||||
/* time in seconds before the monitor shuts down */
|
||||
static const int monitortime = 5;
|
||||
|
|
|
|||
20
slock.c
20
slock.c
|
|
@ -19,6 +19,7 @@
|
|||
#ifdef XINERAMA
|
||||
#include <X11/extensions/Xinerama.h>
|
||||
#endif
|
||||
#include <X11/extensions/dpms.h>
|
||||
#include <X11/keysym.h>
|
||||
#include <X11/Xlib.h>
|
||||
#include <X11/Xutil.h>
|
||||
|
|
@ -392,6 +393,7 @@ main(int argc, char **argv) {
|
|||
const char *hash;
|
||||
Display *dpy;
|
||||
int s, nlocks, nscreens;
|
||||
CARD16 standby, suspend, off;
|
||||
|
||||
ARGBEGIN {
|
||||
case 'v':
|
||||
|
|
@ -506,6 +508,20 @@ main(int argc, char **argv) {
|
|||
if (nlocks != nscreens)
|
||||
return 1;
|
||||
|
||||
/* DPMS magic to disable the monitor */
|
||||
if (!DPMSCapable(dpy))
|
||||
die("slock: DPMSCapable failed\n");
|
||||
if (!DPMSEnable(dpy))
|
||||
die("slock: DPMSEnable failed\n");
|
||||
if (!DPMSGetTimeouts(dpy, &standby, &suspend, &off))
|
||||
die("slock: DPMSGetTimeouts failed\n");
|
||||
if (!standby || !suspend || !off)
|
||||
die("slock: at least one DPMS variable is zero\n");
|
||||
if (!DPMSSetTimeouts(dpy, monitortime, monitortime, monitortime))
|
||||
die("slock: DPMSSetTimeouts failed\n");
|
||||
|
||||
XSync(dpy, 0);
|
||||
|
||||
/* run post-lock command */
|
||||
if (argc > 0) {
|
||||
switch (fork()) {
|
||||
|
|
@ -530,5 +546,9 @@ main(int argc, char **argv) {
|
|||
|
||||
XSync(dpy, 0);
|
||||
XCloseDisplay(dpy);
|
||||
/* reset DPMS values to inital ones */
|
||||
DPMSSetTimeouts(dpy, standby, suspend, off);
|
||||
XSync(dpy, 0);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue