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:

into this:

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?
Pingback: learn how to french kiss
Pingback: datenritter blog
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.
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
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
i think i’ll give this a shot… if i don’t like it no harm done
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.
)
Pingback: n3rd.tv » Blog Archive » Episode 0×2D
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.
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.
>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….
Pingback: ivan stojic - life is a low fidelity experience
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!
Pingback: Dvorak Mirrorboard for HP Pavilion 0.2 at aslamp.com
Pingback: RENAULT ecu maps power tuning flash files download area
Pingback: Gregg Berkholtz's personal blog
Pingback: Mirrorboard « Meta-thoughts
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.
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.
Excellent! It’s very intuitive and I’m typing with very few errors after just a few minutes.
i’m an avid masturbater so this will definitely come in handy (pun not intended)
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.
Pingback: Answer My Searches » Blog Archive » Mini Searches with Answers
Excellent! It’s very intuitive and I’m typing with very few errors after just a few minutes
Pingback: links for 2010-05-29 « The Adventures of Geekgirl
Heh
Despite the fact the beta is in fact at the end of first phase, amazing replays will still be accessable for those who missed some important games!
I’m learning Dvorak, it’s not that hard. It’s like going to mexico for a few weeks to learn spanish.
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.
I really enjoy reading the blog. It really brings a unique point of view. Please keep up with the great updates.
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 >.<
This just turned me on to the most ingenious thing yet. PROGRAMMERS DVORAK
Excellent! It’s very intuitive and I’m typing with very few errors after just a few minutes.
ellent! It’s very intuitive and I’m typing with very few errors after just a few barbarie s you tubern
nt! It’s very intuitive and I’m typing with very few errors after just a few barbarie flf vedurn yapaesert
nt! It’s very intuitive and I’m typing with very few errors after just a few barbarie menderes serpaing
nt! It’s very intuitive and I’m typing with very few errors after just a few barbarie mesident lapaes dertoing
nt! It’s very intuitive and I’m typing with very few errors after just a few barbarie master names
nt! It’s very intuitive and I’m typing with very few errors after just a few barbarie monduras
nt! It’s very intuitive and I’m typing with very few errors after just a few barbarie mosturhan refeat
nt! It’s very intuitive and I’m typing with very few errors after just a few barbarie bested february match
nt! It’s very intuitive and I’m typing with very few errors after just a few barbarie bamya trable mount yapaes sertting
nt! It’s very intuitive and I’m typing with very few errors after just a few dlables
Yes to all 3 questions above lol. I am a big time gamer too
.
But your missing a lot of keys?? How is this meant to work?
I enjoy your creativity.
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.
very nice this blog thanks admin
very nice this blog thanks admin
There are some really good points you made in your post…very insightful
nt! It’s very intuitive and I’m typing with very few errors after just a few dlables…
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.