Acá dejo una versión para *nix (lo armé en FreeBSD, pero en Linux debería ir out-of-the box, en otros sistemas que usen X habría que ver) basada en X →
http://pastebin.com/K4h8DU2UEse code está tirado en mi disco hace milenios y hecho "así nomás" por que quería chitearle a un juego en el momento x')
Ahora a simple vista le veo mil cosas que cambiarle (como el flush de más) o agregarle (como programarle posición X/Y o algo como XEV que toma el ID de donde uno clickea, verificación de ID sino) ... pero sin dudas me encantaría hacer algo así, BIEN hecho y para Wayland.
Saludos.