commit 394a8ca846595281a0d25cdaa8b9189db119285e from: Benjamin Stürz date: Wed Dec 27 16:44:39 2023 UTC slock: Make DPMS optional commit - d3dd1d86257e1b22b13be0cf11a6d21c44ca9ccc commit + 394a8ca846595281a0d25cdaa8b9189db119285e blob - f8148ac3ee2553004f8efa4165f5c037b1aaad6c blob + f6d31201c7ec07d757d1e353ae697a94f48a1a8f --- slock/slock.c +++ slock/slock.c @@ -353,6 +353,7 @@ main(int argc, char **argv) { Display *dpy; int s, nlocks, nscreens; CARD16 standby, suspend, off; + int working_dpms; ARGBEGIN { case 'v': @@ -424,19 +425,20 @@ main(int argc, char **argv) { 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); - + working_dpms = DPMSCapable(dpy) == True; + if (working_dpms) { + 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); + } else { + fprintf(stderr, "slock: DPMS not supported\n"); + } /* run post-lock command */ if (argc > 0) { @@ -464,7 +466,9 @@ main(int argc, char **argv) { #endif /* reset DPMS values to inital ones */ - DPMSSetTimeouts(dpy, standby, suspend, off); + if (working_dpms) + DPMSSetTimeouts(dpy, standby, suspend, off); + XSync(dpy, 0); return 0;