Add keyboard input support