我有一个连接到等离子电视的 Ubuntu 盒子。静止图像会缩短等离子电视的使用寿命,并可能导致像素烧坏。我正在寻找一种技术,当显示器上的画面静止一段时间时启动屏幕保护程序,但如果画面移动,则阻止屏幕保护程序。这是我的一段不起作用的 Python 代码,但任何使用 Python 或其他方法的解决方案对我来说都很好:
import gtk.gdk
import time
from subprocess import *
w = gtk.gdk.get_default_root_window()
sz = w.get_size()
while (True):
buf1 = gtk.gdk.Pixbuf(gtk.gdk.COLORSPACE_RGB,False,8,sz[0],sz[1])
pb1 = buf1.get_from_drawable(w,w.get_colormap(),0,0,0,0,sz[0],sz[1])
time.sleep(3)
buf2 = gtk.gdk.Pixbuf(gtk.gdk.COLORSPACE_RGB,False,8,sz[0],sz[1])
pb2 = buf2.get_from_drawable(w,w.get_colormap(),0,0,0,0,sz[0],sz[1])
pix1 = pb1.get_pixels()
pix2 = pb2.get_pixels()
diffs = 0
for i in range(len(pix1)):
if(pix1[i] != pix2[i]):
diffs = diffs + 1
if(diffs > 10000):
call(["xset", "dpms", "force", "on"])
call(["gnome-screensaver-command", "--exit"])