2013年11月6日 星期三

Xlib 防止 gnome-screensaver 啟用

一般來說看影片或者像是用搖桿、手把玩遊戲的時候鍵盤滑鼠都不會有輸入,所以應用程式通常會自動停用螢幕保護程式,以防影片看到一半、電動打到一半被中斷。

在 X window 環境下要實作這個功能,可以每隔一段時間執行以下的 code:
DPMSForceLevel(display, DPMSModeOn);
XResetScreenSaver(display);
XFlush(display);

間隔時間可以取 DPMS 設定或者 xscreensaver、gnome-screensaver 的 timeout:
DPMSGetTimeouts(display, &standby, &suspend, &offtime);
XGetScreenSaver(display, &timeout, &interval, &prefer_blanking, &allow_exposures);