simulating chorded keyboards

David Rysdam david at rysdam.org
Mon Oct 13 14:22:23 EDT 2014


Remember the MIDI son? This is a different son, Kyle, with a different
project. He's interested in chorded keyboards. You can find these here
and there online, but he wants to design his own. To start, he wants to
simulate one with a regular keyboard.

We've been looking into ways to let him flexibly define keyboard input
(chords, modifier keys, etc) but without requiring a ton of low-level
programming.

1) A simple game engine (pygame, e.g.) that reports "key down" and "key
up" events rather than simply delivering a pressed key via something
like read(), getchar(), etc. He needs to get between these events to
figure out the "current chord". Even pygame is more programming than he
really wants to do, though.

2) xkeycaps looks like the opposite of what I want, but it's described
so poorly I can't tell for sure. It looks like I can generate multiple
keysyms from a single key press, but not vice versa.

3) emacs! This was actually my first suggestion, since it does almost
everything he wants. Of course, he'd have to learn emacs first. However,
there's another problem that I'm not sure can be overcome. Aren't emacs
sequences limited such that you can't have one be a prefix of another?

For instance, he'd like to be able to do this:

    'i' key down followed by 'i' key up: 'i'
    'i' down followed by 'k' down followed by 'i' and 'k' both up: 'm'

but with emacs you can have "i+k" mapped to m but then not 'i' mapped to
'i'.


More information about the gnhlug-discuss mailing list