Swinput can fake a mouse and a keyboard by using
the Linux Input System. The swinput modules read
from a device and fake hardware events (mouse
motion, key presses, etc.) as commands written on
the devices. Swinput presents status, etc on the
proc filesystem.