Linux input devices. (keyboard, mouse, joystick, etc.)
This is a very low-level - there may be better, higher-level options.