A few useful references http://linuxconsole.sourceforge.net/input/input.html Using the Input Subsystem - No matter how many buttons an input device has or how many kinds of events it can generate, you can now work with it from user space. http://www.linuxjournal.com/article/6429 Here is part one of that article series http://www.linuxjournal.com/article/6396 Here is a useful way to browse around in the input driver source http://www.gelato.unsw.edu.au/lxr/source/drivers/input/?a=i386 This POC /dev/input/event/* keylogger is interesting http://archives.neohapsis.com/archives/sf/linux/2005-q3/0065.html This is an interesting simple example driver code for input driver http://kernel.org/pub/linux/kernel/people/landley/kdocs/Documentation/input/input-programming.txt This is old but useful due to its description of the bigger picture of keyboard scancodes and related stuff http://www.linuxjournal.com/article/1080 As for console output, just as with the Input Driver redesign, it is changing quicky and they are trying to clean up the architecture. I suppose the first thing would be to see how the console is changing and where it's heading architecture wise. I have a lot of interest in this for other projects and will be doing some investigation. One thing I have in mind is implementing what will basically be the equivalent of a VT100 terminal using a small microcontroller, where input is an attached keyboard and output is speech. Since there already is serial console, a means to implement a terminal with keyboard input and speech output would be quite useful. Rather than connecting a machine to serial port for console, you'd plug in a dongle which would have both a keyboard port and an output port for speech, or possibly even speech hardware in the actual dongle. I'll share some more info on this idea a bit later. -- Doug