pyneo-zadosk is a simple but highly configurable on-screen-keyboard. it uses libfakekey. it's written in python and is usable as stand-alone program or as module imported in a python app. it's output is based on GTK (currently python-gtk2 but will soon migrated to use gir).