Almost all USB keyboards should work well with XukutOS. Plug it into your computer, start the computer, and it should work. Beware: plugging in or unplugging devices when the system is already running does not work: we still need to program the driver to detect and handle such events.
Some design suggestions for how your programs should use the keyboard:
* It should be feasible to operate everything with only a keyboard. By using a few helper programs, it should be possible to only use a mouse.
* Modal interaction is OK, but make the mode obvious and escapable.
* All interactions should be undoable.
XukutOS supports the use of generic USB keyboard and mouse under the "boot protocol": the USB driver regularly asks the keyboard whether anything has changed, then notifies the other processes of the input it receives. The flow of data is more or less like this:
* You press a key, electricity flows and tells the chip in the keyboard that the key is pressed.
* The USB driver asks the keyboard which keys are pressed, and gets a list of scancodes. It sends this on to the keyboard driver.
* The keyboard driver determines which keys have changed state. It sends a message for each change to the GUI manager.
* Starting with the GUI manager, each GUI component determines whether the keys are part of one of its shortcuts (handling them at this level), or should be passed to a focussed subcomponent (for example: manager -> window -> tabbox -> input field).
* Entering text is also treated as a sequence of shortcuts (namely for a command like "insert character <x>"). It is only at this point that (a sequence of) scancodes is translated to a character, by passing it through a "character source" process.
Any questions? Contact me:
By email at vierkantor@vierkantor.com