I mentioned the Touchstream in my intro, and @merlin had some questions, so rather than hi-jack the introduction thread, I’m starting a separate topic here.
One of the first things that drew me to the Touchstream was its Programmer’s Punctuation Pad, which was also my first introduction to the idea of using multiple layers on a keyboard, beyond what you get from the shift key. I found a mirror of Fingerworks’ site that shows the layout - you may have to zoom in. The symbols in the lower right corner of the right half keys are what I’m referring to.
One of the other things that was so great about this keyboard is that it was the first true multi-touch device (the inventors were eventually bought out by Apple, and you’ve seen their work). Touching with a single finger gave you typing. Two fingers on the right half was mousing, on the left half was arrow keys, with acceleration proportional to the speed of the gesture. There were a variety of chorded gestures - tapping thumb & two fingers on the left side enabled the punctuation pad. Tapping four fingers on home row was shift, above was ctrl, below was alt, and tapping four fingers on both home rows was single-word capslock (which reminds me, I need to figure out a plugin or macro to do that, because it was GREAT for … well, things like that, or for any variables that were ALL_CAPS). Three fingers on both sides at once was ESC. It was also smart enough to detect (with remarkably little error) which two fingers you were tapping. More gestures… Resting all five fingers on the board was a null-input, so you didn’t have to keep your hands hovering all day.
As you might be able to tell, I still miss using this input device, which was so much more than just a keyboard. In the end, the lack of tactile feedback was the deal-breaker for me. One too many times, I ended up with a stray character in the middle of a source code file that caused a compile error. Oddly enough, the change from centralized version control to hg/git was the final straw - before, I had my IDE set so that I had to manually check out a file, and until I did, it was read-only, which gave me a chance to catch any stray characters that might otherwise have caused problems.