Como obter um plano de fundo transparente na janela com PyGTK e PyCairo?

Eu tenho tentado muito criar uma janela sem decoração e um fundo transparente usando o PyGTK. Eu desenharia o conteúdo da janela com o Cairo. Mas não consigo fazer funcionar.

Eu tentei várias maneiras diferentes, todas falharam, essa é uma delas

#!/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))

Então, qual é a maneira mais simples de fazer isso?

questionAnswers(2)

yourAnswerToTheQuestion