applied Ali Gholami Rudi's patch regarding DPMS timeout customization and persistence - slock - simple X display locker utility
 (HTM) git clone git://git.suckless.org/slock
 (DIR) Log
 (DIR) Files
 (DIR) Refs
 (DIR) README
 (DIR) LICENSE
       ---
 (DIR) commit 0cb05bdb75ac13f010d51e267007ca1c869763ec
 (DIR) parent cadc8a7472f4a77b26a89e27bce4479dc12afdbe
 (HTM) Author: a@null <unknown>
       Date:   Fri, 12 Dec 2008 19:34:43 +0000
       
       applied Ali Gholami Rudi's patch regarding DPMS timeout customization and persistence
       Diffstat:
         M config.mk                           |       2 +-
         M slock.c                             |      13 +++++++++----
       
       2 files changed, 10 insertions(+), 5 deletions(-)
       ---
 (DIR) diff --git a/config.mk b/config.mk
       @@ -1,5 +1,5 @@
        # slock version
       -VERSION = 0.9
       +VERSION = 1.0
        
        # Customize below to fit your system
        
 (DIR) diff --git a/slock.c b/slock.c
       @@ -79,6 +79,7 @@ main(int argc, char **argv) {
                XColor black, dummy;
                XEvent ev;
                XSetWindowAttributes wa;
       +        CARD16 standby, suspend, off;
        
                if((argc == 2) && !strcmp("-v", argv[1]))
                        die("slock-"VERSION", © 2006-2008 Anselm R Garbe\n");
       @@ -123,12 +124,13 @@ main(int argc, char **argv) {
                len = 0;
                XSync(dpy, False);
        
       +        if(DPMSCapable(dpy)) { /* save and customize DPMS settings */
       +                DPMSGetTimeouts(dpy, &standby, &suspend, &off);
       +                DPMSSetTimeouts(dpy, 10, 30, 90);
       +        }
       +
                /* main event loop */
                while(running && !XNextEvent(dpy, &ev)) {
       -                if(len == 0 && DPMSCapable(dpy)) {
       -                        DPMSEnable(dpy);
       -                        DPMSForceLevel(dpy, DPMSModeOff);
       -                }
                        if(ev.type == KeyPress) {
                                buf[0] = 0;
                                num = XLookupString(&ev.xkey, buf, sizeof buf, &ksym, 0);
       @@ -170,6 +172,9 @@ main(int argc, char **argv) {
                                }
                        }
                }
       +        if(DPMSCapable(dpy)) { /* restore DPMS settings */
       +                DPMSSetTimeouts(dpy, standby, suspend, off);
       +        }
                XUngrabPointer(dpy, CurrentTime);
                XFreePixmap(dpy, pmap);
                XDestroyWindow(dpy, w);