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?

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

  1. Pingback: learn how to french kiss

  2. Pingback: datenritter blog

  3. One of my friends recently broke his right wrist, and now has learned to type everything with his left hand (without your ingenious method). Maybe this would help him a lot.

    Like

  4. I recently read this article for the first time and looked through the comments. It seems people have been looking for a windows version, but are unable to find one. Someone mentioned AutoHotkeys, which is definitely the right track. I’ve used it in the past to do various stuff (mostly rebinding mouse/controller buttons and scripting sequences), so I thought I’d write one up quickly.

    Instructions are in the readme, and the source is included, so you can customize it. If you don’t want to compile it yourself, you don’t even need to install AutoHotkeys, just run the exe in the pack.

    http://www.reknet.ca/mirrorboard.rar

    Like

  5. heh, this was actually smart and sweet enough for me to want to learn…
    i’m trying to learn dvorak at the moment, though writing this post w/ qwerty
    (god damn me switching now :P)

    i think i’ll give this a shot… if i don’t like it no harm done 😛

    Like

  6. Well… I sort of liked this idea, and I couldn’t resist making one based on the swedish qwerty…

    Uhmm, I’ll just post the comments I made to my xkb-file:

    This is a Swedish variant of the Mirrorboard,
    entirely made by copypasting a lot of segments
    from other files and a few from Munroe’s Mirrorboard.
    Idea is completely of Munroe

    His original layout uses the level 3 modifier
    to add the necessary letters on the keyboard.
    The swedish qwerty RELIES heavily on the level 3
    modifier in the form om ALT GR (right alt).
    Therefore, the swedish qwerty and mirrorboard
    isn’t entirely compatible…
    I’ve omitted some of the characters not used commonly
    and relocated some that couldn’t stay (most notably @).
    You’ll find I’ve done my best to keep characters
    where they should, but of course, one thing
    can’t be the best for all.
    If you find my placements REALLY disturbing
    you can of course change here.
    The file must be the most self-explainatory thing
    I’ve ever seen, so no worries.

    Some characters remain where they are on the
    swedish qwerty, and remains with the level
    3 modifier, though you have to press caps lock
    to get characters like {, [, ], } and ~…
    This should be no problem as I find that
    even more intuitive. 🙂

    Image of the layout here: http://kr1sse.shivas.se/uppladdningar/keybalfnum02.png

    Link to xkb-file here: (Install the same way as original)
    http://kr1sse.shivas.se/uppladdningar/mise.xkb

    (Last note, a link to my comment i first post might be good for other swedes. ;))

    Like

  7. Pingback: n3rd.tv » Blog Archive » Episode 0×2D

  8. Ah, my last post disappeared, for it probably counted as a double one…

    What I did when I was bored was a Swedish mirrorboard!

    Uhmm… my comments to the file:
    // This is a Swedish variant of the Mirrorboard,
    // entirely made by copypasting a lot of segments
    // from other files and a few from Munroe’s Mirrorboard.
    // Idea is completely of Munroe

    // His original layout uses the level 3 modifier
    // to add the necessary letters on the keyboard.
    // The swedish qwerty RELIES heavily on the level 3
    // modifier in the form om ALT GR (right alt).
    // Therefore, the swedish qwerty and mirrorboard
    // isn’t entirely compatible…
    // I’ve omitted some of the characters not used commonly
    // and relocated some that couldn’t stay (most notably @).
    // You’ll find I’ve done my best to keep characters
    // where they should, but of course, one thing
    // can’t be the best for all.
    // If you find my placements REALLY disturbing
    // you can of course change here.
    // The file must be the most self-explainatory thing
    // I’ve ever seen, so no worries.

    // Some characters remain where they are on the
    // swedish qwerty, and remains with the level
    // 3 modifier, though you have to press caps lock
    // to get characters like {, [, ], } and ~…
    // This should be no problem as I find that
    // even more intuitive. 🙂

    And… I realise now I’ve forgot the $-sign, which might be necessary if you do PHP, Perl or something, but you can easily hack it wherever you want.

    http://kr1sse.shivas.se/uppladdningar/mise.xkb

    Also, I think a link in the original post might help other swedes. 🙂

    Like

  9. I can’t help but notice that xkcd is incredibly fast to type on the Left-handed Dvorak layout, all the letters adjacent and basically in order, with only x being off the home row.

    Like

  10. >E cavat gesw brt vwtece tgat xdcd es evcredebsy fast tw tyqe wv tge Seft-Ganded Dvwrad saywetx a** tge setters adfacevt and basecassy ev wrderc wetg wvsy x beevg wff tge gwce rwwx

    >I can’t help but notice that xkcd is incredibly fast to type on the Left-Handed Dvorak layout, all the letters adjacent and basically in order, with only x being off the home row.

    Wow that was fun. The first paragraph was me just typing with my left hand alone, just pretending that the keyboard was flipped. I was suprised at how simple it was to superimpose the right hand over the left.

    3.5 hours later and some (very simple) scripting for http://www.autohotkey.com (ala gmp@lj above) and I was able to type the second paragraph at about 1/4 speed, but (nearly) all with my left hand. Once I get the hang of this it’ll be great! I work on a computer all day doing AutoCAD drafting, and most of the commands can be entered as text and shortcuts. I’ve been tempted to plunk down $50 for a gaming keypad and programming it with my favorite commands, but with this setup I can just type whatever I want with the one hand! Fabulous.

    I know, it sounds incredibly lazy – not moving my hand from one side of the keyboard to the other, oh the pain – but I know that I waste far too much time hunting and pecking for the letter that I want, and more often than not getting it wrong. Now if I could only find a workaround to force that program to accept the space bar as a hotkey modifier….

    Like

  11. Pingback: ivan stojic - life is a low fidelity experience

  12. Hi!

    I’ve been frustrated both by the way that the original XKCD mirrorboard works, and the way I couldn’t get the monstrosity of MXK to work properly. Therefore I’ve sat down yesterday to write The Mirrorboard. It’s a Linux evdev/uinput hack that allows you to use your regular keyboard just like the way you would use the Matias 508 keyboard.

    Of course, the best part is – now any keyboard is a 508.

    You can check out the short project intro here: http://www.ordecon.com/2008/12/29/mirrorboard-type-with-one-hand-use-the-other-for-something-else/ and if you need help compiling it / getting it to run, don’t be afraid to contact me!

    Like

  13. Pingback: Dvorak Mirrorboard for HP Pavilion 0.2 at aslamp.com

  14. Pingback: RENAULT ecu maps power tuning flash files download area

  15. Pingback: Gregg Berkholtz's personal blog

  16. Pingback: Mirrorboard « Meta-thoughts

  17. Such was the case when I solicited a Computer Ergonomic Workstation. It is a computer posture environment because it has a special keyboard, which allows me to have my hands straight and not have to bend my wrists.

    Like

  18. I can’t help but notice that xkcd is incredibly fast to type on the Left-handed Dvorak layout, all the letters adjacent and basically in order, with only x being off the home row.

    Like

  19. Excellent! It’s very intuitive and I’m typing with very few errors after just a few minutes.

    Like

  20. i’m an avid masturbater so this will definitely come in handy (pun not intended)

    Like

  21. You know what? I found music notes of some of the hardest to find operas online – ranging from mendel to bach and even Beethoven! Thanks to you and all those people who have been spending time to make all this rare information accessible for people like me! Thanks a ton.

    Like

  22. Pingback: Answer My Searches » Blog Archive » Mini Searches with Answers

  23. Pingback: links for 2010-05-29 « The Adventures of Geekgirl

  24. I’m learning Dvorak, it’s not that hard. It’s like going to mexico for a few weeks to learn spanish.

    Like

  25. I find this a little easier with caps and space switched. I also added colon/semicolon to the tab key, brackets/braces to 6 and 7, and question and slash to Z and X.

    Like

  26. What about setting it so that capslock switches between qwerty and dvorak? might come in handy while trying to learn dvorak, especially when your keys are non-removable >.<

    Like

  27. nt! It’s very intuitive and I’m typing with very few errors after just a few barbarie bamya trable mount yapaes sertting

    Like

  28. I love what you guys are usually up too. This type of clever work and coverage! Keep up the excellent works guys I’ve added you guys to our blogroll.

    Like

  29. I attempted implementing what you said might be easy with a perl script, but instead I used the Helsinki Finite State Transducer project and TWOLC. All it takes is a huge wordlist and a single TWOLC rules. I initially tried in python, but searching through a huge wordlist takes a good amount of time, so it seemed like something like this would be a bit more ideal; and it is in a way– results come quite immediately.

    It works basically so that you give input; such as gwvwsrsr, and you get honolulu as output; it also works well with mixed left and right words. Some words however, due to the nature of wordlists have several suggestions that are outputted.

    test
    test yest
    test yelt
    test test
    test telt
    test tilt

    I guess all it needs next is a means for searching for input from X. It seems like a corrective typing approach, instead of a spellchecking approach might be something fun and worth implementing… However, a good method for selecting between all of the potential correct spelling suggestions is necessary first before it can really be useful… Also, a means for handing what to do when the word is not actually in the dictionary is necessary; so the mirroring key would still need to be a present option.

    Like