Mirrorboard: A one-handed keyboard layout for the lazy

Do you have a wearable computer? Are you interested in alternate keyboard layouts but too lazy to learn Dvorak? Do you masturbate at your desk? If you answered yes to any of these questions, you may be interested in my custom keyboard layout.

I spend most of my desktop time in a web browser and the rest in terminals/messengers. So, like a gamer, I’m usually sitting with one hand on the keyboard and the other on the mouse, typing things occasionally. I found that I was actually biasing myself towards things I could type with my left hand — saying “haha” instead of “lol”, for example. This got me thinking about one-handed keyboard layouts.

Now, there exist all sorts of specially-built one-handed chording keyboards. There are also one-handed layouts like Left-handed Dvorak which can be used with a standard keyboard. That’s no good for me. I’m not going to spend months rewiring my brain just to type a few things faster (Dvorak people, I admire your perseverance, but I do not have the commitment that you do). What I really wanted was a modification of QWERTY that let me occasionally type with one hand without learning anything really new.

The key moment was when I realized that the brain command I use to type the letter ‘e’ is very similar to the one I use to type ‘i’. I found that if I held my right hand away from the keyboard and tried to type “the kitten parked the hovercraft”, it came out “tge dettev qarded gte gwvercraft” — I was doing the same motions with my left hand that I’d normally do with my right.

Mirrorboard is a keyboard layout that lets you type simple things on a QWERTY keyboard with only the left hand. It works by mirroring the layout between the left and right hands when you press caps lock. “asdf” becomes “;lkj” — the entire keyboard is reflected. To press a key on the right side of the board, you hold caps-lock with your pinky and then press the corresponding key on the left side.

When caps-lock is pressed, the layout turns from this:

QWERTY layout

into this:

Mirrorboard layout

This means that to type “parking”, you press <caps+q> <a> <r> <caps+d> <caps+i> <caps+v> <g>. The nice thing about this is that you can start typing at a decent speed right away, and it doesn’t interfere with normal typing — there’s no need to switch back and forth like with dvorak. It’s just an additional set of shortcuts to get to letters on the right side of the keyboard. You can use it as much or as little as you want. I don’t use it for too much of my typing, but I use it enough that I miss it when it isn’t there.

Here’s the layout file:

http://xkcd.com/mirrorboard.xkb

Activate it by running

xkbcomp mirrorboard.xkb $DISPLAY 2>/dev/null

You can stick that in a startup file somewhere to run automatically on boot.

This is a mapping for X, so it works on Linux and probably some sort of Unix machines. I use it on my Ubuntu desktop and the Gentoo server in the living room. I don’t have a version of this for any other OS, but if anyone creates one I’ll stick it up here. (edit: Pat points out that the concept of a mirrorable one-handed keyboard has been explored before, at least on the hardware side.)

Thank you to Neale for his help in putting the file together.

Notes:

(1) I recommend remapping the tilde key, without caps-lock, to backspace. I didn’t make the change in the published file because I want it to make no changes if you don’t use caps-lock. To make this change, just switch which line is commented in the file where it talks about “tilde is backspace” (or download the alternate version where I made this change).

(2) Caps-space is mapped to return. This is incredibly handy and is probably the aspect of the layout I use the most.

(3) I had to be a little inconsistent with the number keys, but for the most part I only use this layout to type letters anyway. You can adjust them pretty easily in the file.

(4) This would become orders of magnitude faster if intelligent-guess methods were used so you could stop worrying about caps lock. For starters, I bet someone could easily write a line or two of perl that took an input word, such as “qardevg”, and searched the dictionary for /^[qp][a'][ru][dk][ei][vn][gh]$/. I bet most of the time this would only turn up one word (xkcd@aram:~$ cat words | grep -i “^[qp][a'][ru][dk][ei][vn][gh]$” turns up “parking”). With a lot more work, you could build the same idea into a layer that sits in X somewhere and is activated when you hit a key (caps lock or scroll lock, perhaps). As long as it added to its dictionary based on what you’d typed previously, this could become a pretty powerful system for one-handed typing, with possible applications for wearable computers and accessibility for the recently-disabled.

(5) Just for fun, try typing “We fear a few dwarf watercraft stewardesses were regarded as desegregated after a great Texas tweezer war.” on a QWERTY keyboard. Also try “I’ll kill him in Honolulu, you unhook my pink kimono.” Can anyone come up with better ones?

277 thoughts on “Mirrorboard: A one-handed keyboard layout for the lazy

  1. Now that I broke my collar bone, that’s the almost perfect thing, just that I’d need the layout for the right hand..

  2. I don’t suppose there is a mirrorboard for dvorak, and for windows?

    I live in Iceland and since the qwerty keymap is horrendously awful in Icelandic, I am using a customized dvorak that was edited in Windows Keyboard Creator or whatever it’s called so that alt-gr toggles all those beloved special keys I need to use on a daily basis. It’d be super cool if there were any way to do this somehow. It could also be a solution to ctrl w, c, v .r shortcuts being very inconveniently on the right side.

    Also, before you bash me for using windows… Honestly I just can’t be bothered with searching for linux versions of programs. Not to mention having to emulate all games =(

  3. Pingback: One-Hand Typing software

  4. Pingback: Linux One-Handed Keyboard Layouts

  5. Pingback: Half-Keyboard Software Applications

  6. Hello, all.

    I am looking for such a one-hand layout; however, I need one which mirrors the Brazilian ABNT keyboard layout, so I decided to revert the operation. It took me some time to discover how to do it, and I did it with a workaround (in Ubuntu 12.04): I just opened the “Keyboard” configuration panel, clicked in “Layout configuration” and added another layout to the options. After that, I just removed the added layout, because I just needed to add it to reverse the state of my machine.

    Anyway, this mirrored layout is great and I will probably ue it as a base for one which attends my needs.

    Thanks!

  7. I found this through a link from Slashdot and tried you file on Ubuntu 11.04, but no luck.

    Any advice on how to get this working?

    Great idea. Thanks much!

  8. Ideally you would press an extra mouse button to switch the layout.. Or maybe you could have space be the modifier, unless it’s pressed without another key. For any confused n00bs on ubuntu, just cd to where the xkb file is, (probably in ~/Downloads) and type the command.

  9. This does not work for me in command prompt or explorer address bar.

    Please provide more specific instructions for the less technical

    Activate it by running

    xkbcomp mirrorboard.xkb $DISPLAY 2>/dev/null

    You can stick that in a startup file somewhere to run automatically on boot.

  10. Pingback: Mirrorboard! My one-handed keyboard! | Figaw's Blog

  11. Awesome.
    So I had this work, and I thought it would be amazing if this could work together with the space bar as modifier key, as typing would be much more natural.
    After hours of working at it and being almost there now I can’t even get your normal script to work anymore. But maybe you’re interested in putting it together.
    The idea is to Make the Spacebar a flexible modifier key with keydouble (I found this on the web from baskerville: https://github.com/baskerville/keydouble). And then use that new modifier keysim to mirror the other keys.
    If anybody gets this to work, please let me know how =).
    Thanks anyways for getting me to learn some more about how key mapping in X works!

  12. I find this trick to be really nice with a Kinesis. In particular, using a footpedal to toggle the mirroring.

    (It’s useful to overcome the Kinesis’s wide gap between the two halves if trying to play a game like StarCraft II.)

  13. Pingback: My HalfKeyboard implementation | Kieran Bingham

Leave a Reply

Your email address will not be published. Required fields are marked *

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>