I've just got an ekatetra ekapad,this is a chording keyboard that AFAICT works by faking the codes generated by a regular PC keyboard. This has plusses and minuses. On the plus side I don't need a device driver. On the minus side some of the chords generate odd escape sequences when used with linux and a UK keyboard and I can't see how to remap them without breaking the regular keyboard which I don't want to do until I've mastered the ekapad. Another downside is that some of the chords for charachters commonly used in the shell and common programming languages require pressing two keys with the same finger or moving fingers off the home rows. This includes brackets of all sorts ()[]{}. This post was brought to you by ekapad and vi.