An accessible one-handed keyboard, inspired by FrogPad
kianryan.co.ukI can't imagine another cocktail party where my own one handed keyboard would be relevant, so here it is:
https://github.com/trevorjay/Handler
It's chorded, (based on the https://ardux.io/ layout), but I don't think chorded is really that hard to learn if you're actually willing to give it a week or two (which you have in any situation where you need a one hander).
The key (ha) I've found is that you want the keys to be as easy to press as possible while providing feedback. The Twiddler, https://twiddler.tekgear.com/ , is great for this as it uses light tact switches, but it has reliability issues.
This is a great project. Of all my one-handed experience, I never got to try a FrogPad because of the expense. Having a software implementation of the FrogPad is awesome.
What a fun read! Your “how to get shot in the airport” caption nearly made me spit out my coffee.
Thanks, I'm glad you liked it!
Having seen this but not yet having gotten to building it - is it wildly impractical? It looks a little slow (and obviously there's a learning curve) but it seems like it would work nicely in a number of cases where a normal keyboard wouldn't. (Ex. I bet I could use it on an exercise bike)
To be honest, I've only used it twice. It was fine, really, there's just a big learning curve and it can only do 32 characters. I imagine that, with some good autocorrect, it might be fairly usable.
Something like a t9 dictionary might be useful for it, even if you'd probably need the other device to handle the dictionary unless you wanted it hacky as all hell.
Replacing the thumb button with some kind of clicky D-pad (D-pad mounted on a microswitch) would be a somewhat easy way to add more buttons. (my first thought was going with two per finger by adding one around the side or to a strap on the outside of your fingers)
The T9 dictionary is for a keypad of 10 digits, I don't see how it can be used here. I see many people say T9 when they mean "autocorrect", and I'm not sure where the confusion stems from.
Super cool project. The siren song of binary input is strong: https://youtu.be/hansx2Bzxa0
> I am a heavy user of a proprietary one-handed keyboard system. Recent maintenance issues and the lack of user serviceability have turned my attention to creating a more reliable solution.
Oh no! That's so sad to hear.
I was overjoyed when the new BT model came out; I was finally going to get to do the thing & get good at this. A couple years latter I actually made an effort to really learn it & get a little competent. For whatever reason (allegedly more coder friendly) I almost immediately adopted TabSpace layout & printed up a half dozen key map graphics so one would always be at hand.
It was a fun time but I never committed hard enough. I'm also just shocked how effective & capable I am at writing on a touchscreen. I'd tried some more code-oriented keyboards for coding, and this was a while ago but they lacked most of the intelligence/helpfulness of a mainstream touch-keyboard & weren't something I could hard adopt. In the meantime, the mainstream touch-keyboards forever annoy me; I really wish long presses could offer a lot more options but we seem forever consigned to be flipping between screens to get a special character or two.
I'm super excited to hear of Twiddler / one handed users in the wild. That's crazy awesome that you build your own! That it only takes 8 keys is a feat!
One-handed daily drivers are out there. We're nuts, but at least it's not Dvorak (kidding).
TBH, the the Twiddler layout is probably superior (though not by much). I went with eight traditional keys because it could be hand wired. The Twiddler approach is basically limited to soldering directly to a board, with all the issues therein. After about six months or so I would get debris caught under one switch or another and the Twiddler is basically welded shut. :/
Speaking of design issues (and talking about the BT). I highly recommend using a Nice! or other wireless/BT microcontroller. Not only is it more convenient but cable strain is a real issue on most microcontrollers. If the Handler has a design flaw, that's the biggie.
Thank you so much for sharing this!
I’m curious if you have ever looked into the Tap Strap 2? I recently got one and it looks promising with preliminary testing but I haven’t invested much time learning and configuring it yet.
Wow. Unless I'm thinking of a different device, those were much more expensive the last time I took a look. That's super tempting.
Just giving a preliminary skim of the website, it looks like their alphabet doesn't include meta characters like CTRL, ALT, and WINDOWS? Is there a more advanced mode? When you customize things, is that done on device (just sending keystrokes as a Bluetooth keyboard) or do you need special software on the device you're interacting with? Learning aside. How accurate has it seemed so far?
I have a Tap Strap 2. (Although only as of a couple of weeks ago, so still pretty new to it.)
Answering your questions, split into pros and cons:
## Pros
You can customise the layout, including meta keys like control/alt/windows. I think the "more advanced mode" is basically just designing your own layout.
It's honestly very accurate for a keyboard that is basically just tapping your figures against a table. It definitely misreads the odd input (or perhaps more accurately, it is sufficiently easy for me to waggle my fingers wrong), but it doesn't make so many that I'm really bothered by it.
I had an issue with the firmware on mine when I first got it, and the support team were super responsive. I really appreciated this.
The Android/iOS app is well designed for learning how to use it -- it comes with an excellently pedagogical typing tutor.
If you're curious, I'd definitely recommend giving it a go. IIUC the WPM most folks get with it is about equivalent to to other one-handed-keyboards, ~50 or so. I've found learning it to be pretty easy. (Substantially easier than learning a new layout on a regular keyboard, for some reason.)
It connects as a bluetooth keyboard, no special software required.
## Cons
Customising layouts is unfortunately a bit of a chore, being both tied-to-the-company and requiring additional devices. The layout must first be designed through a webpage on their site, which you need to log in to using your account. Then you need an Android/iOS device to actually connect to the TS2 and push the layout.
## Worth knowing
You have essentially five layers: default, double tap, triple tap, shift, and switch. Shift and switch are pretty similar to layers as you'll find them on most ergomech keyboards. However, the double and triple tap layers work by inputting the key corresponding to that chord on the default layer, then detecting that you're doing a double/triple tap, then inputting backspace, and then inputting the key corresponding to the chord on the double/triple tap layer. So if you'd like to use it for something like vim, then that first input might actually mean something! If that will affect you, then in practice you can't use the double/triple tap layers, and you only have 60% of the real estate to fit your custom layout into. That is just enough to fit basically a whole keyboard -- I've got a custom layout that does this -- but it took me some careful thought for how to cram all those keys into such little space in a logical way.
Thanks for the details!
The insertion of backspaces is interesting. One of the drawbacks of--say--Ardux is that some layers are accessed by holding down one key and then pressing others. It's adjustable but it means there's a delay when you want to enter characters on such layers as the keyboard has to wait and make sure you're actually holding. Conflicts aside, committing early and then correcting is interesting.
The Twiddler eventually got third party tools, maybe the Tap Strap can.. as well. Being at the mercy of an app service for what is for a large portion of users a medical device is insane.
Looking at the software, it looks at least as powerful as the Twitter: in-device keybindings, holds, macros, etc. This is super interesting.
https://github.com/JJJHolscher/tapstrap
https://github.com/TapWithUs/tap-python-sdk
Those might be interesting for you if you haven’t seen them.
What’s your max WPM with the one handed setup?
I won't lie, straight-up prose is much slower. I can just about break 120 wpm with a full QWERTY whereas I can only do roughly 40-45 single-handed. Typing passwords sucks.
The big 'however' here is coding. I also have a one-handed mouse from Elecom. Not switching between mouse and keyboard to navigate, combined with macros being less strain (basically no hand travel and sticky meta keys) means I'm faster editing code to the point I just eat the prose cost (or use my phone keyboard/dictation to compose longer prose).
As far as prose goes, that's not that bad - I was expecting a 5-10x slowdown.
How much do you use the mouse when navigating? Do you have something akin to vim combos or do you use mostly mouse? What kind of macros do you have?
Yeah, I was introduced to the Twiddler in the context of robot interfaces and while I can't find the study now, there were a couple showing that eventually the slowdown is down to the extra movement, which is almost exactly x3 on most chorded systems.
I use the mouse almost exclusively now, to the point going back to search/word/character navigation when a terminal won't pass mouse events feels excruciating.
Macros are mostly code refactoring in emacs. Things like moving blocks between brackets, repainting, stuff like that. These really benefit from sticky keys. No letter is closer or further from super, hyper, or alt because I hit the chord for the meta key and then the one for letter.
> Not switching between mouse and keyboard to navigate,
I found the opposite solution also works:D A combination of keynav, a tiling window manager, and ex. vimium[0] make reaching for the mouse pretty much optional:)
[0] The key feature is a hotkey to quickly select links with the keyboard.
I have experience with both the FrogPad and the Matias Half Keyboard (I paid $95; now $595). The Frogpad never caught on with me.
https://matias.store/products/half-keyboard
The Matias Half Keyboard is based on a theory that our minds mirror each hand, so by holding the space bar to access the missing half keyboard, we already know what to do. I was skeptical. Recognizing that we're modal (do we even recognize that telephone keypads and numeric keypads are different, or do we just use them without thinking?) I decided to learn Dvorak on the half keyboard while continuing to use QWERTY on my full keyboards.
One day, on a lark, I tried Dvorak on a full keyboard. I could, easily. The mirror theory holds.
Another anecdata. I had a bike accident which took my left hand out of commission for a while. It was after the Matias keyboard became so expensive, and I was broke. But I was motivated enough to try the concept that I hacked together a software implementation that behaved more or less the same way on a standard full size keyboard by swapping to a mirrored system keyboard layout while holding the spacebar for a short time.
The software itself was buggy as hell (I learned just enough ObjC to get it kinda working), but even so the mirroring concept worked perfectly for me. It was basically no learning curve (full QWERTY to half QWERTY), and I only took a slight hit to typing speed. The first thing I did was prove it out by building another bit of software to relaunch the first whenever it crashed, and then worked full time with it for a couple months. Typing was never quite as subconscious for me as it is with both hands, but it was as close to that as I could imagine.
> It was after the Matias keyboard became so expensive, and I was broke.
I was once emailing with a customer and saw their email signature included apologies for typos, on account of a broken bone/arm/shoulder. As the customer lived nearby, I asked if by chance he had broken his right side, but could use a Matias left-handed keyboard I had laying around (from the days when it was cheap). I loaned it to him for the rest of the semester. I hope to loan it out again someday, to someone else in need!
Sounds like something you could also do with half of a keychron Q11 and some reprogramming via QMK?
Yes, easily.
I came out of the mechanical keyboard rabbit hole with multiple Leopold FC660C Topre switches (there's no going back to any mechanical switch) and Hasu replacement controllers that support QMK.
Here's an out-of-date version of my layout, heavily using tap-hold to access multiple layers:
https://raw.githubusercontent.com/Syzygies/log_folders/maste...
Chording never took for me, but one-finger-each-hand concentrated near home row is such an obvious way to quadratically expand the address space. The Matias space bar was certainly an inspiration for this, though everyone uses QMK tap-hold for purposes like this.
> the Matias Half Keyboard (I paid $95; now $595)
Ha, same here. Seems like they discovered that the mainstream demand for this is quite low, but the reimbursement potential for ADA/HR purposes was much higher.
I've always been curious about that half keyboard, but nowhere near to the point of spending $600. I'm glad to have read some impressions, at least!
I've also tested out a mirror layout on a standard keyboard, it's shockingly easy to pick up
There’s a trick with phantom limb pain and mirrors as well.
A couple of years ago I had to undergo some serious wrist surgery and the recovery period was going to be several months as well. I was worried and didn't want to be out recovering without working, so I started looking into all sorts of alternative ways to type with my left hand. I looked into FrogPad, chorded keyboards, custom keyboards, etc.
In the end, I found a blog post about someone who just built a customized Karabiner-Elements bindings, where the keyboard layout is all the same for the "left-handed keys", but if you hold the spacebar the "right-handed keys" get mirrored to the left making it acessible to your left hand. Releasing the spacebar without a second key just inputs the spacebar as usual.
I customized that a little bit more to get some other keys in the places I wanted and set out to practice. Within a week I was typing at 60wpm comfortably when measuring at Type Racer. I normally type at around 120wpm, so I was pretty happy with the result. In my IDE I also have been using VIM bindings since a decade, so moving around it wasn't any trouble. I adapted myself to use the mouse with my left hand which wasn't also too difficult.
It cost literally zero and I only needed to "re-learn" typing the mirrored letters, and even then, it wasn't as hard because it's just mirrored and your brain quickly adjusts. No need to learn a complete new layout.
Edit: Here's the Karabiner-Elements customized binding I used as a base: https://github.com/qubist/mirrorboard-mac?tab=readme-ov-file
A nice hack for building a small keyboard/macro pad that is 80% of the way there is to buy one of those cherry mx key testers, a microcontroller dev board of your choice, and a small lipo. All together it might cost you something like $40 depending on how many keys your key tester has and you should only need a soldering iron and some wire to put it together.
Those are handy to have anyway. I have a tester that originally had 64 keys that is down to 56 or so… I normally like really light keys, like 30-40g, but it’s nice to have much heavier action on a few keys like backspace and numpad enter so you can give em a really satisfying thwack without bottoming out.
Sure there are places that will sell switches in lots of 5 or 10, but it’s really nice to be able to swap out and experiment and see just how much heavier works for a given key.
My actual ideal would probably be something more like a layout that aimed for equal perceived (instead of actual) force. So basically heavier towards the middle and lighter towards the outside, but done mindfully of kinematics and ergonomics.
I second this as a great way to get started. If you look on Amazon there are a bunch of cheap eight key macros (Lichifit makes one) that are built via layers of acrylic: a base layer, a layer that houses the microcontroller, and a layer for the keyboard. It's easy enough to sub your own micro and 3D print a replacement layer.
I really hate chords. I just don't have the mental memory for it. Besides shift for capitals, things just need their own buttons. I always hate fighting games with 20 different combos on the gamepad to remember.
So 80% and less keyboards also don't work. I use a huge keyboard with numpad, the keys of which I remap to very common functions so I don't have to use combos for them :)
I wonder if I'm just weird or if this is a common thing.
There is also one-handed keyboards like that, for example the one from Maltron: http://www.maltron.com/store/p19/Maltron_Single_Hand_Keyboar...
This is excellent. I had a frogpad and got reasonably comfortable with it, my use case was mostly messaging so not a heavy use of special characters like {}/|Etc. Given my experience with it, I agree that using it as a model for this project was a good choice. An acquaintance, Steve Roberts, had a really clever keyboard that attached to the handlebars of his recumbent bicycle so that he could type while riding.
Out of curiosity, how fast did you type on the frogpad ?
I really don't know, I didn't measure it. It wasn't as fast as a QWERTY keyboard but it was fast enough. It was definitely way faster than typing using a 10 key numpad on a phone. Based on Steve's recommendation I had also tried a one-hand keyboard that was basically a half sphere with buttons for your four fingers and a number of 'shift' buttons for your thumb (basically all chord all the time) and I never got comfortable enough with it to use it for any length of time.
The hardware is one half of the DIY split ergo-mech Lily58. It is open source and kits are widely available. <https://github.com/kata0510/Lily58>
The FrogPad-inspired part is the firmware/layout for only one hand and the labels in the relegendable keycaps.
There is no better keyboard and mouse than no keyboard and mouse. Does anyone knows a solution that allows to provide input without the need to move your arms and/or fingers? I have heard about brainwave detection but apparently it's hard to learn, slow and have a high latency. Any ideas?
If you don't mind using other limbs, there's a whole ton of products aimed at musicians who have their hands full but still want to be able to manipulate another device. For example, the organ, guitar pedals, and much, much more. Big variety of pedal setups generally, but musicians have been dealing with the "no hands" input problem for a very long time.
There are also a number of existing eye tracking input systems, but I think that kinda sucks / is limiting.
I'm aware of tongue-activated joysticks for people that are unable to move their bodies. Maybe look into assistive devices of that variety.
That is one amazing video and an utterly amazing musician. I had no idea such an instrument exists. Really, you kind of blew up my musical world. That definitely lands on my Things That Went Right Today list. Thanks!!
I really wish I had the capacity & skills to take on some hobbyist eye tracking efforts. I think a huge amount of work could be done by looking, or looking with some modifiers.
At some point I need to start doing some machine learning stuff. I'm intimidated to get started, and it feels like there's better tooling emerging. Also, I don't want to go Nvidia so it feels like I'm starting out in Hard mode. But some day I need to pick something like Keras and do some basic ML image processing or what not with my Radeon rx580, if it can.
There's many accessibility focused input devices that lets you use your mouth/tongue. There's also foot pedals, voice activation software etc.
There's eviacam, though it's code rotting:(
Are there similar projects that focus on the software aspects? Would love to read about that. For English text, you could probably get away with just typing half the letters and having the rest predicted, no?
Optimized voice typing?
A special voice-code. Like Thufir Hawat did in Dune (the old one).
Because I can talk way faster than type. And if we could just iron out the bumps. Remove ambiguities and such.
Surely that's been done.
(Or even more specialized, for writing java...)
Talon Voice with enough tweaking, lots of practice, and a good mic can get you there.
Cusorless and Talon!
I created a one-hand layout, similar to the FrogPad, for my Ergodox, and then wound up never bothering to use it seriously, at which point the muscle memory I spent a few weeks training up fell away
Kinda related, I assume accessibility commercial products to be more expensive. Is there any government incentive to help with that?
I have dreamed of one of these for driving. Touch typing would make responding to something while keeping eyes on the road much much easier.
It's necessary to keep your brain on the road, as well as your eyes — and your hands on the wheel.
If it were built into the steering wheel and used a HUD to display the text it might not be criminally irresponsible..
This would only give the illusion of paying attention to the road, without paying attention to the road. It might actually be worse.
No. If you’re focusing on text on the windshield 50cm in front of you you are NOT focusing on the road.