The Keyboard You Really Don’t Need Or Want

Most people think of a keyboard as a flat, vaguely rectangular thing with around 100ish different keys. A mechanical keyboard enthusiast would heartily disagree and point out various tenkeyless, 75%, 60%, or 40% keyboards that strip down the idea of what a keyboard is by taking keys out. [Stavros Korokithakis] takes that notion and turns it on its side by creating the five-button vertical keyboard known as Keyyyyyyyys.

This keyboard, or keystick, is designed to be onehanded and to be eye-contact-free. With just five keys, it makes heavy use of chording to output all the characters needed. It has a maximum of 32 possible states and taking out pressing nothing as a no-op leaves 31 possible key combinations. So [Stavros] had to get creative and laid out the letters according to their frequency in the English language. The brains of Keyyyyyyyys is the ubiquitous ESP32, emulating a Bluetooth keyboard while being wrapped in a simple 3d printed box. The code is hosted on GitLab.

If you don’t know how hard it is to learn a five-key chording keyboard from scratch, definitely check out [Stavros]’ video embedded below. “C’mon h.” We have heard reports that you can learn these things, though.

While this five-button keyboard may seem small, this two-button keyboard still has it beat by three keys. A one-button keyboard is just a morse code keyboard, and we are looking forward to a wireless Bluetooth version.

48 thoughts on “The Keyboard You Really Don’t Need Or Want

    1. I’ve a key on each half of my Ergodox that causes it to completely mirror itself down the middle. It’s not especially ergonomic, but on the plus side your muscle memory basically already works so you don’t have to learn anything.

  1. A keyboard that worked as well as those old nokia phones. The muscle memory allowed to write a message relatively fast without even looking at the keyboard or screen while walking around. That is a kind of keyboard I would love to see reincarnate in some kind of form.

    1. Well this could be the keyboard for you then, no looking required, its certainly possible to get quick on chording keyboards. Its just learning a whole new input device again…

      Which is why I haven’t yet devoted any effort to building the chording keyboard idea i’ve had floating around as it would be cool, and work well in these larger projects… I spent years mastering typing faster than I can think (or at least have any hope of getting the spellings and grammar correct), learning to do so on something so different, even with the goal of just being fast enough to keep up with the ideas I wish to type..

  2. A small screen to guide the user would be a godsend for any keyboard with few keys. Group the keys by whatever criteria makes most sense to the user (could be related to a QWERTY layout, or alphabetical) and show what’s next as they go down the tree.

  3. In “Songs of a Distant Earth” Arthur C. Clarke mentions in a chapter about a one handed entry device that the crew uses to ask questions during a vote on remaining on Thalassa. I’ve always wanted to figure that out.

  4. i love this form factor but i just don’t think 32 positions is usable. other keyboards shaped like this go through some pains to give 3 or 4 positions for each finger (i.e., 3^5) instead of just 2, and i think that’s unfortunately necessary.

    as for learning it, the technique is simple. you just do it. ugh, right? but if you go through your regular text-entry-heavy lifestyle without using any other keyboard, within a week you can learn anything. it’s so painful for the first couple days but then at the end of the week your level of mastery is surprising. it’s probably harder for a chording keyboard than for an alternate layout like dvorak :)

    1. Maybe one or two modal switch buttons would help.

      31 characters can do the alphabet, space, return, full stop, comma, and quote (for example, maybe you’d want a shift-next-character chord in the default 31 too).

      A mode switch button to the left of the thumb button could then switch into numbers and further punctuation.

      Maybe a device like this could be good in an AR/VR environment, as an additional use case. Big issue for me is a weaker little finger, I wouldn’t like that being a common key to have to use, I’d even prefer it to be the mode switch finger, with 3 for the thumb, giving 60 characters.

      Or you could have simple short-press and long-press variants, to give 62 characters. Visual (or audible) feedback seems to be key here.

      1. Short- and long-press variants are a terrible idea! On the other hand (so to speak), some telegraphers can (allegedly) enter data at up to 50 words/minute using a one or two key “keyboard”, as the author suggests.

        I was working for a little while on a chorded keyboard based on Morse code, but couldn’t come up with a viable way of indicating the length of the codes without using two keys for each finger.

        1. I too have been thinking about a Morse inspired chording keyboard (as I sort of know Morse so this in use would help keep it fresh in my mind I hope), though for me I never wanted to worry about length – it was always one slider per finger with up being short down being long, character sent on release – the entire alphabet can then be done with one hand, entire letter at once, and the common letters will only use the more dominant fingers, with still many spare combinations for extra characters like punctuation and perhaps the ever present on modern keyboards media macro keys.. (Not to mention the thumbs mobility means it can have a little collection of extra common buttons and probably a “mouse” of some sort in reach).

          But if you wanted to do length based just use a timer with some filtering and put the onus on the user to type to a rhythm (you’ll probably find they do anyway – at least when they are not having to pause for thought often enough to upset it). Or perhaps a simple haptic feedback when the key has been down long enough to count as changed. As long as your program can figure out what the users rhythm is it won’t be any different to listening to Morse, which computers have been doing for a while. And with that haptic feedback the user can know if they are going too fast and slow down (or crank the timers base clock up a little to suit).

          1. I think I would probably not deal well with something that requied a specific timing, even though I’m a musician. Also, I have to point out that while computers have been interpreting Morse for a long time, they’ve been notoriously POOR at doing so, especially when the sender isn’t particularly consistent in their timing.

            My approach to a Morse-inspired keyboard was to use two buttons for each finger, with the “dits” being the home row and the “dahs” being the row above. If used with the right hand, the fingers would represent the order of the dits and dahs, left-to-right, while on the left hand, still left-to-right, but right-justified. In this way, the length of the character is easy to determine. As with standard Morse code, the most-used characters are the easiest to key. I might just end up doing a two-key keyboad in the style of a Morse paddle, one key for dits, the other for dahs. But this WOULD have to rely on a time delay to detect the end of the character.

            My main reason for even wanting a chorded keyboard was so that I could have my left hand on a keyboard and right hand on a pointing device at all times. This goes back to bad experiences with many different applications. For example, those where you have to select a point on the screen by moving the mouse to that point, then clicking the mouse button, where clicking the mouse often moves the mouse in the process, slowing the process down and increasing errors significantly. This has always been troublesome, I’ve handled it in my own applications y using keyboard shortcuts limited to left-hand keys. Sometimes it works well, other times not so much, but the point is that it decouples precision positioning from triggering an action.

            Way, way back in time, I worked with a schematic and chip layout system that used a Summagraphics 4-button digitizer, which used a felt-bottomed puck that had enough friction that it didn’t move unless you wanted it to. This system also had mostly-left-handed keyboard shortcuts, and formed my expectations for how well combined graphics and text entry COULD work. When the mouse was introduced and rapidly replaced the tablet, that was a dark time for me.

            I tried exploring the possibilities for this (the Morse-chord™ keyboard) using a standard keyboard, just detecting when keys were pressed and released. Boy, was I in for a surprise. Long, long ago (again), you could detect keypresses directly in C. But with modern OSs, and I mean Windows AND Mac OS AND Linux, this is no longer an option. I had to program using a GUI system (SDL2) to get this level of control, and even then, Mac OS had the audacity to pop up a dialog asking me if I wanted to grant permission for my application to read the keyboard. For and APPLICATION to READ the KEYBOARD. This is why I want to make an 80s-style computer out of a couple of Rasperry Pi Picos. Shit’s getting out of hand.

            Sorry for the multi-level rant – we were talking about keyboards, weren’t we?

          2. The April 1971 issue of QST had a chord keyboard for CW. Five keys, when you combine them you get the characters. I didn’t really look at the choices, but one key sends “a” but obviously with other keys, sends other characters.

            Done with RTL logic, the concept could be updated, or done with a microcontroller.

            I never saw the scheme again, so perhaps there’s good reasons against it.

            Iambic keyers of course send dots on one side, dashes on the other, but both alternating if you squeeze both. I wonder if that’s good enough that a chord CW keyboard doesn’t give much improvement.

            When I had a Teletype machine, there was a rhythm to it. A keyer that imposed timing on the sender in some way might be useful.

            Or just build a regular chord keyboard, and then a program converting characters to CW.

          3. Iambic keyers take a lot of skill to do well, and compared with chorded keyboards, require multiple strokes per character rather than a single stroke with a given hand shape, so I think chorded is a better way to go. N1FN wrote an interesting article that challenged the supposed advantages of iambic keying (http://www.morsex.com/pubs/iambicmyth.pdf), that showed that the improvement when going from a simple paddle or bug key to a full iambic keyer was miniscule.

            I remember using model 33 Teletypes, and yes, by locking out the keyboard until ready for the next keypress, they actually sped up my typing by enforcing that rhythm. Even though the keyboard could do 100 words/minute, I discovered pretty quickly that I would try burst-typing some words faster than that, which was really counterproductive, especially on “glass teletypes” like the Datapoint 3300, which would just skip characters if you typed them too fast.

          4. I like a good rant, well a good well reasoned rant at least, with lots of tangents thrown in as they apply. That reminder that even the simplest thing generally is part of a more complex whole.

            Sounds like we have very similar ideas for Morse inspired Chording, so at least we are either both idiots or it is a sound enough idea to be worth trying… Slightly different reasoning though – for me while hands on a pointing device would be nice it was more for the compactness, and feel, a nice quality feel so its nice to use, but small enough to integrate anywhere and free up valuable desk space in general.

            For pointing device I was thinking turning the whole small little assembly into an optical mouse and probably adding a trackball/joystick for the thumb.. So you can even operate all of the basic computer HID inputs with just the one hand.

          5. Yeah, I think we’re on the same page in some ways. Basing the chording patterns on Morse was to me a way of reinforcing my Morse fluency. I think if I was writing Hack-a-Day comments using Morse patterns, I would quickly get over those confusions between J and B, for example, and maybe even get numbers and punctuation down solid.

            The ultra-compact thing is good sometimes, and I think development of a usable device that’s held in one hand and outputs to earbuds would be very interesting. Just not quite what I think I need. But I would follow it if it was documented on hackaday.io, for example.

            Everybody has different needs. Lots of people want full size, full travel mechanical keys, and wouldn’t like what I’m working on, because it has slightly smaller keys (17mm vs. 19mm) and very short travel (less than 1mm). But that’s another project.

          6. I think that if I WAS primarily looking for an ultra-compact device, though, and this could be worth exploring to me at some point, it’s likely I would just go with two buttons – one for dit and one for dah. Maybe not quite as fast as a chorded solution, but Bluetooth that to my phone, and I’ll never tap on a stupid on-screen keyboard again! Or, heck, maybe I could make an alternative on-screen keyboard that’s just two big buttons. Still gotta’ be better than buttons 5mm apart.

          7. Indeed I would hate your keyboard of choice – I find anything that isn’t a Model M or Model F feels bad to use. The shorter key travel can be ok, but its that lack of haptic feedback before bottoming out, and the need most of those extra thin keyboards have of smashing them right to the end stop so it registers – not universal failing of course, some of the IBM thinkpad laptops I’ve experienced have been very nice for laptop keyboards).

            With my rather large hands really can’t cope with smaller keys very well (though yours isn’t compact enough I’d really not be able to use it, wouldn’t like it, but it is just big enough. The hopeless area is reserved for some of the 15″ and smaller laptop style keyboards that decide to give users more keys so the keys end up about 3/4 the size of my pudgy finger tips…

            Some other decent keyboards out there, some of the modern mechanical keyswitch are nice (maybe even better than the ol’ buckling spring – I wouldn’t know having not tried many of them), but I already have model M’s and F’s why spend a fortune on a new keyboard if my current one will do, and has been working perfectly longer than I have been alive… Though the 122 key terminal keyboard I type this on is one reason my desk is forever somewhat devoid of space, but its a good primary keyboard, strangely a little quieter than the newer model M’s…

  5. The video is hilarious! In all other chorded keyboard implementations, the inventor has invariably insisted that his device could be learned quickly and easily. This is the lone exception. “C’mon h!”

  6. Each key-down and key-up is a unique trackable gesture, so more combinations are possible so that
    1 down, 3 down, 1 up, 3 up
    would be different from
    3 down, 1 down, 1 up, 3 up
    and
    1 down, 3 down, 3 up, 1 up variants.

    This would more than double the available combinations. By starting a “chord” when the first key goes down and collecting input until the last key goes up, the input potential is literally only limited by the software and the users ability to remember the chords.

      1. Oh, this just sounds brain-warping. And while it may SEEM like it gives you more codes with little extra cost, realize that each finger motion becomes a separate stroke, since they have to be done in order. Yeah, really infinite possibilities with, say, four buttons, but some of those will get tricky, like A down, B down, A up, D down, C down, D up, B up, A down, C up, A up. Sure, it’s only four buttons, and can easily give you the whole ISO 8859-1 character set without any mode shifts, but in this extreme example it’s 10 actions for one character.

        1. i have been captivated by this idea, because i realized it’s not too different from a software on-screen keyboard i made a long time ago. though i’m unlikely to do anything with the idea…

          but i think you can make some limitations on the patterns to make it more approachable and still have plenty of combinations. just look at key down events between the first key down event and the key up of that same key. so if you press one of the 5 keys and release it, there’s an event. then if you press one key, press a second key, and then release the first key, there’s another event — 5*4 possibilities. then if you press one key, press a second, press a third, and then release the first key, there’s another event — 5*4*3 possibilities. 5+20+60 = 85 possibilities, so just at three presses we’ve already got enough for a typical keyboard. you could add exotic keys at 4 presses, and if you need a really wide set of events then you could even press one key more than once after the first one. i.e., A, B, B, B. so that would have key up events in the middle but they would only be so you could repeat key down events.

          i like that it allows some common keys to be one press, most of the alphabet in two presses, and then you can add more complicated things to your heart’s desire without interfering with the simple ones.

          my concern is that it’s basically chording + sequence, i.e., it matters what order you press the keys within the one logical event. so as you get faster at it, i think there will be a tendency to slur things, to where the second and third key down events might race eachother, especially if you have trouble like i do moving your middle finger and pinky finger together without moving your ring finger.

          1. Okay, that makes it a bit less insane. My example was an exaggeration, for sure. Basically, you can just shape your hand so that the fingers hit the buttons in the right order, and then it’s still a small number of strokes per character. If just the alphabet and things like enter, space, and backspace can be done with one stroke, that’s the main thing.

  7. I did something like this once, it’s somewhat usable depending on how fast you plan to go (good for casual use, wouldn’t use for writing a book or something). I never got around to actually making it wireless and self contained.
    I also wrote a special webpage to capture keypress events and use those to simulate the chording so I could design the layout, it used the ASDF and space keys as the 5 keys and would record the keys that were pressed and then fire off an event when they were all released so that would go to a lookup table. With only 31 possibilities there was a special “mode changing sequence” to bring you from the letters mode to the numbers/symbols mode, and other stuff as well.
    I had big plans for this project but then I killed it by trying to make it too bulletproof and “consumer friendly”, would’ve been better to make it quick ‘n’ dirty and then iterate from there. Oh well, maybe one of these years I’ll pick it back up.
    https://twitter.com/koppanyh/status/1007141111884742656?s=20
    https://replit.com/@koppanyh/ChordedKeyboard

    1. Nice scheme. I would bet that at least ten thousand programmers have tried doing chorded keyboards one way or another (see my own comment elsewhere on this article thread), but this one seems maybe useful. I especially like that the commonly-used keys like space and enter transcend any shifting in effect, similar to how 30% and 40% keyboards tend to be coded. I may just try it, using an ATmega32U4 and eight buttons, just so it can plug into USB and not need to have special software to make it work. Or maybe make this one of the modal options for a 40% keyboard, so I can do most tasks left-handed, but still have full QWERTY available for writing text.

      1. Thanks, I tried to make this one as usable as possible (I had actually intended to build it and then use it with an audio-based interface so I could use earbuds instead of needing to also create smartglasses).
        I tried to put characters in their natural order rather than the order of how often they are used because I wasn’t sure how much harder it would’ve been to learn that scheme. But maybe it would’ve been more efficient in the long term.

  8. I’m fond of chorded keyboards, they fit a small number of use cases, including walking while typing, having an input device for a second computer without having a whole second keyboard, hand on mouse editing (which was the original use case from the Engelbart demo) and portable typing. I’ve got a tap strap and put together a a physical key version that I used for awhile.

    Best thing about the tap strap is the way it teaches you. There are mnemonics for each set of finger combinations, for instance, two fingers separated by one finger types D-M-Z and the mnemonic is “Don’t Mess With Zombies”. There’s a little video and song for each mnemonic and it’s reinforced with a typing game.

    There’s a couple of options for breaking beyond the 31 key limit, including having a few chords set aside for shifting, double and triple taps and arpeggio’s, where you quickly tap one and then another key to trigger an event. Tap uses the first two, PentiKeyboard, which is an onscreen keyboard for android, uses the arpeggio.

    1. Bloody hell… I thought my bike was getting up there but that is truly astonishing. And with 1991 tech too!

      The scary bit is I’m about ⅓ of the way there. I have the Yaesu FT-857D for 80m-70cm band coverage. That’s been on the bike for about 10 years now… and I have antennas for both HF and VHF/UHF ports. Last time it got any major use was on the Yarraman to Wulkuraka ride in 2018. (In 2019, a double-booking had me stuck running base at a horse endurance ride… 2020 it got canned due to COVID-19 and BQ have decided to discontinue these multi-day rides now).

      https://www.brisbanewicen.org.au/2018/08/04/y2w/

      Right now it’s just the radio. I have a Raspberry Pi 4 + DRAWS board which ultimately will get a permanent home next to said FT-857D, and there’s plans for a simple text-only console near the handlebars so that I can control said Raspberry Pi.

      The idea of the Pi was that it was going to plug into the radio’s data port and do APRS/digital modes. That evolved to the idea of using a SDR and some antenna switching so the FT-857 became purely a transmitter (and back-up receiver) and the Pi would do the receive heavy-lifting (adding dual-watch features in the process).

      It was not going to be doing emails and other “office” things, least not whilst mobile… but the concepts there definitely give me some ideas as to how I might make the above more practical.

    1. One of the most famous chord keyboards was tye one on Steven K. Roberts recumbent bicycle. He had it on the handlebars, so he could type while bicycling.

      Most chord keyboards have been famous for being chord keyboards.

    1. I tried the tap for a while, it really wasn’t that hard to learn. They have great training apps and games that make it fun.

      The biggest problems I had with it and why I stopped trying with it was that…

      A. It was too much effort to put on and adjust every time. (Imagine you have to take 45 seconds every time you sit down to type… doesn’t sound like much but remember you are going to need to do this every time you don’t want to walk around with your keyboard… like when you have to pee or want to wash your hands because you are wearing a bunch of plastic rings)

      B. You have to tap on a hard enough surface for it to reliably pick up the taps and this isn’t comfortable for a long period of time. They say you should be able to do it super lightly but it’s fiddly so you end up over pressing.

      C. Even if you know the right chord to use you can still mess it up if you don’t tap just right for it to pick up the correct tap. You have to be very accurate at how you tap each finger not just that you tap. It feels much more like playing an instrument than pressing a button. Even when I knew all the cords after only a few practice sessions it took several weeks of solid practice to get even remotely good at tapping correctly and by that point I was seeing diminishing roi on training while still making far to many miss taps to daily drive it.

      D. I wanted to be able to use it for some light coding but all the keys you need ()]]{}#*_ are hidden behind extra modes that you have to tap into without great feedback to know which mode you are in until you type the wrong char. A simple thing in coding like “f(a=b)” ended up something like “f ( a = b )” I get that coding with this is crazy to think should be doable but it made it just that much harder to keep.

    1. There’s a simulator on the website (from 2010) that lets you try it out. Almost all of the codes involve two keys, pressing one, then while that is down, pressing another, then releasing them in either the same order they were pressed or the reverse order. In a demo video, they show someone using it, and whether they’re deliberately NOT flexing, or they don’t have anybody on staff who can type quickly with it, the bottom line is that they do about one character per second, which equates to 10 words/minute.

Leave a Reply to Programmer Dude (@koppanyh)Cancel reply

Please be kind and respectful to help make the comments section excellent. (Comment Policy)

This site uses Akismet to reduce spam. Learn how your comment data is processed.