¿Cómo obtener un fondo transparente en la ventana con PyGTK y PyCairo?

He estado intentando crear una ventana sin decoración y con un fondo transparente usando PyGTK. Luego dibujaría el contenido de la ventana con El Cairo. Pero no puedo hacer que funcione.

He intentado muchas formas diferentes, todas fallaron, esta es una de ellas

#!/usr/bin/env python

import pygtk
pygtk.require('2.0')
import gtk, sys, cairo

win = None

def expose (widget, event):
    cr = widget.window.cairo_create()

    #Start drawing
    cr.set_operator(cairo.OPERATOR_CLEAR)
    cr.set_source_rgba(0.5,1.0,0.0,0.5)
    cr.rectangle(0, 0, 0.9, 0.8)
    cr.fill()

def main (argc):
    global win

    win = gtk.Window()

    win.set_decorated(False)

    win.connect('delete_event', gtk.main_quit)
    win.connect('expose-event', expose)

    win.set_app_paintable(True)

    win.show()

    gtk.main()

if __name__ == '__main__':
    sys.exit(main(sys.argv))

Entonces, ¿cuál es la forma más sencilla de hacer esto?

Respuestas a la pregunta(2)

Su respuesta a la pregunta