#!/usr/bin/env python3
# -*- coding: utf-8 -*-

import os
import gtk.gdk as gdk
from sys import stdout, stderr, argv

if len(argv) == 3:
    width, height = int(argv[1]), int(argv[2])
else:
    exit(1)

root = gdk.get_default_root_window()
if root is None:
    exit(1)
r_width, r_height = root.get_size()

pmap = gdk.Pixmap(root, width, height)
cr = pmap.cairo_create()
cr.scale(float(width)/r_width, float(height)/r_height)
cr.set_source_pixmap(root, 0, 0)
cr.paint()

pixbuf = gdk.Pixbuf(gdk.COLORSPACE_RGB, False, 8, width, height)
pixbuf = pixbuf.get_from_drawable(pmap, root.get_colormap(), 0, 0, 0, 0, width, height)

rowst = str(pixbuf.get_rowstride())
pixels = pixbuf.get_pixels()

if (pixbuf != None):
    if not os.path.exists('/tmp/.hgr/Client'):
        os.makedirs('/tmp/.hgr/Client')
    pixbuf.save("/tmp/.hgr/Client/screenshot.jpeg","jpeg")
    print("Screenshot saved to screenshot.jpeg.")
else:
    print("Unable to get the screenshot.")
