Eu tenho uma caixa Ubuntu conectada a uma TV de plasma. Imagens estáticas reduzem o tempo de vida das TVs de plasma e podem causar queima de pixels. Eu estou procurando uma técnica para iniciar o protetor de tela se a imagem no monitor é ainda por um tempo, mas impede que o protetor de tela se a imagem está se movendo. Aqui está minha parte não funcional do código python, mas qualquer solução usando python ou de outra forma é boa para mim:
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"])