Bien, marcó el xset source code. Las partes de código relevantes son
#include <X11/extensions/dpms.h>
...
Display* dpy = XOpenDisplay(NULL);
...
int dummy;
CARD16 standby, suspend, off;
BOOL onoff;
CARD16 state;
printf("DPMS (Energy Star):\n");
if (DPMSQueryExtension(dpy, &dummy, &dummy))
{
if (DPMSCapable(dpy))
{
DPMSGetTimeouts(dpy, &standby, &suspend, &off);
printf (" Standby: %d Suspend: %d Off: %d\n",
standby, suspend, off);
DPMSInfo(dpy, &state, &onoff);
if (onoff)
{
printf(" DPMS is Enabled\n");
switch (state)
{
case DPMSModeOn:
printf(" Monitor is On\n");
break;
case DPMSModeStandby:
printf(" Monitor is in Standby\n");
break;
case DPMSModeSuspend:
printf(" Monitor is in Suspend\n");
break;
case DPMSModeOff:
printf(" Monitor is Off\n");
break;
default:
printf(" Unrecognized response from server\n");
}
}
}
}
Sólo en caso de cualquier otra persona necesita este ;-)
Gracias, este es el truco. No es la solución más elegante, pero verifica que funcione la salida "El monitor está encendido/apagado". –
Esto está bien, pero depende de que haya un servidor X disponible. Si solo tiene una consola (lo cual es raro en estos días, ciertamente), no funcionará. – Gabe
En mi caso está bien. Estoy ejecutando un navegador Gtk-WebKit a pantalla completa que filtra la memoria como un tamiz, por lo que después de que la pantalla se apaga por un tiempo, puedo matar y reiniciar el navegador ;-) Por supuesto, sería bueno no tener esas filtraciones. en primer lugar ... –