Aqui está um vídeo que demonstra o problema.
Sempre que tento capturar uma captura de tela, eu pego uma imagem diferente do que acho que estou pegando (exceto ao usar a funcionalidade de tela de impressão do ubuntu quando você pressiona a tecla). Esse problema não está especificamente ligado ao obturador (do vídeo), mas meu próprio programa de captura de tela escrito em python demonstra o mesmo comportamento. Uma amostra do código que captura a captura de tela está aqui:
def grab_screenshot():
""" Grabs a screenshot of the active window and saves it as a png with the current time """
root = gtk.gdk.screen_get_default()
if root.supports_net_wm_hint("_NET_ACTIVE_WINDOW") and root.supports_net_wm_hint("_NET_WM_WINDOW_TYPE"):
print "Grabbing active window"
active = root.get_active_window()
# Comment these two lines if you dont want to enable screenshotting of the entire desktop
# instead of just the active window.
# if active.property_get("_NET_WM_WINDOW_TYPE")[-1][0] == '_NET_WM_WINDOW_TYPE_DESKTOP':
# return "FAIL"
# Calculate the size of the wm decorations
relativex, relativey, winw, winh, d = active.get_geometry()
w = winw + (relativex*2)
h = winh + (relativey+relativex)
# Calculate the position of where the wm decorations start (not the window itself)
screenposx, screenposy = active.get_root_origin()
print "screen posx: %d" % screenposx
print "screen posy: %d" % screenposy
# Take the screenshot
screenshot = gtk.gdk.Pixbuf.get_from_drawable(gtk.gdk.Pixbuf(gtk.gdk.COLORSPACE_RGB, True, 8, w, h),
gtk.gdk.get_default_root_window(),
gtk.gdk.colormap_get_system(),
screenposx, screenposy, 0, 0, w, h)
else:
window = gtk.gdk.get_default_root_window()
size = window.get_size()
print "The size of the window is %d x %d" % size
pixel_buffer = gtk.gdk.Pixbuf(gtk.gdk.COLORSPACE_RGB, False, 8, size[0], size[1])
screenshot = pixel_buffer.get_from_drawable(window, window.get_colormap(), 0, 0, 0, 0, size[0], size[1])
if (screenshot != None):
timeNow = time.time()
fileName = "screenshot_%d.png" %timeNow
screenshot.save(fileName, "png")
print "Screenshot saved to " + fileName
else:
print "Unable to get the screenshot."
fileName = "FAIL"
return fileName
Eu estou supondo que isso é um problema com o gtk? Eu tentei marcar o utilitário gtk loader no compiz, mas isso não parece ter ajudado de alguma forma.