Hacker News new | ask | show | jobs
by gtrevorjay 851 days ago
I 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.

4 comments

Here's mine:

https://www.stavros.io/posts/keyyyyyyyys/

Wildly impractical, but super easy to build.

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.