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?
I just slide my hand to the right to hit the letters that aren’t on the left side of the keyboard. Call me crazy.
I hate to do this to you, but it’s been done before, the concept at least. http://www.matias.ca/halfkeyboard/index.php has half-keyboards that mirror whenever you hold the space bar, but they are mad-expensive and it’s all implemented in hardware (so it’s just plug-and-play). I’m glad there’s a much cheaper alternative now though, and you’ve re-piqued my interest in more efficient typing. (DVORAK user for ~3 years now)
When I was first looking into wearable computers, through the MIT Wearable Computing project back in 1998 or 2000, I found an alternative keyboard that did just what you were talking about. It was design for wearing on one forearm, and had only half the keys of a normal keyboard layout. The spacebar was “split”, and one half of it was actually a shift key. While the thumb was pressing that shift key, the keyboard was in mirrored mode. I think they only had a right-handed model (to be worn on the left forearm), but it was a neat idea. I had the same thoughts as you (I already know this movement, and my brain can mirror it automatically) when I saw it.
Of course, this has implications for people like my father, who has only one hand. Still, he types faster on a full QWERTY keyboard with one hand than some two-handed people I know.
Relevant patent:
http://www.freepatentsonline.com/5288158.html
A keyboard that looks like the one I saw back then:
http://edgarmatias.com/papers/ic93/
General Arthur: I typo a lot when I try to do that — I don’t really instinctively know where the keys are.
Pat: Cool — I’ll put a note about that. As a software implementation for a regular keyboard this still covers slightly different ground. I don’t claim this is the first time this has been done — just that I did it and find it useful, so I’m sharing.
I used Dvorak for a while, and enjoyed it for normal typing. But when I sat down to code, things suddenly became much more difficult. Apparently, while I’m aware of how to spell English, I’m just don’t think of how to spell anything in whatever programming language I’m working on. Didn’t expect that.
I’m tempted to try that perl autodecoder you mentioned above, but I’ve no clue how to hook it into X, or what the UI would look like.
Holding caps-lock with your pinky while typing letters with the same hand is pretty bad ergonomically. I think using the space bar as Pat mentioned would be an improvement, but the pattern matching method in note (4) is probably the best idea.
My solution to this was to map caps + to mouse movements (caps + space = click). I never moved my hands from the keyboard again.
Better? I don’t know about better….
A sad creed was read as wasted Fred feared dear frats were dead.
But I liked this one better:
A deer was dead at a sad tree.
(First the deer was sad but then I changed my mind about that.)
Is it possible to make it so that instead of pressing Caps + Key you press Caps then key? Or have Caps be a switch like normal so you can press caps and the keyboard stays mirrored until you press it again?
Either way this is cool.
I hate to be nitpicky, but is it REALLY that difficult to go from typing to grabbing a mouse? And can’t you just tab between browsers and messengers, and scroll with the keyboard through a webpage?
fREW: Caps then key might work, and would indeed be more ergonomic — I’m not sure how to put it together, though. Perhaps you’d make any key except caps lock disable caps lock as a side effect, but I don’t know how that would work.
Having the keyboard stay mirrored whenever caps lock was on isn’t particularly great, I think. But I like your first idea, though again I don’t know exactly how to do it.
Zabet: Of course, if you don’t think it’s worth it you don’t have to use it. As I said — in my experience it’s been a convenient change for me, so I’m sharing it.
This is really intriguing. Especially the intelligent-guess method. I don’t think it would be all the hard to develop a program that does this either. I can type words with two thumbs at a fairly good speed (TXT MSGing), so it’s curious why this idea hasn’t been implemented yet.
What I mean, is that, it’s curious it hasn’t been implemented for windows. I hope someone corrects me though.
I think the mirror-keyboard is a great solution to increase efficiency but what other solutions are out there? For instance, if text messaging works so well, why not port it to the 10-key pad? T-9 with the 10-key pad and a mouse could get quite effective.
Then again, not having to move my hands from the keyboard is what got me hooked on the Thinkpad’s Trackpoint feature. Do they make desktop keyboards with this?
There was a Mac program that does various useful things with the CapsLock key and keyboard layouts in general; I don’t recall the name… but one of the things they allowed for was this mirrorboard type layout, only I think they used the Space Bar as the shift key to hold down for keys normally from the other side.
It turns out they were sued for patent infringement, and had to remove the layout from their product. I think I’ve seen hardware products related to this idea, an actual half keyboard, but no software implementations that were freely available.
So, um, what I’m trying to say is, er… I’m not sure. But it’s a point of information.
I’ve done a few google searches for windows style versions. On another blog, http://chris.pirillo.com/media/2007/07/03/keyboard-mapping-software/ , I found this: http://www.autohotkey.com/
It looks free, and open source, but I’ve not downloaded it or tried it, and can’t until I get home tonight. There are a lot of other “shareware” for $50 versions out there, but this is the first free, open source one I’ve found. It also seems to be a macro program and alias program, which seem like logical jumps.
I haven’t looked at Linux for a while, but could you use the “Windows” key maybe to switch the mirroring on & off?
I like the intelligent-guess idea. The only snag I see is that +`e’ maps to `i’ (both vowels). Other than that, probably not too many pairs of words where one is made from the other by changing `s’ to `l’ or `w’ to `o’.
Here’s a fun code project: Use perl to search the dictionary for _all_ ambiguous pairs (triplets? (quads!?)) to see how big of a problem it is.
Also, this would be a great way to make smaller laptops with normal-sized keys (and half-size keyboards).
i like it, quite a lot, except i’ve noticed that i end up typing shift+letter more often than caps+letter, i suppose i’ll get used to it, but just at first it’s a bit of a pain
the funny thing is, i’m left handed and i seldom have that problem – i “instinctively”, as you said, know where the keys are. i use my right hand to control the mouse as well. my speed suffers a fair bit, of course.
to experiment, i tried typing the first paragraph with just my left hand and the second with my right. there is a noticeable and frustrating difference in speed and accuracy. I suppose not using your dominant hand to type aggravates the situation.
The unexpected downside I found after switching to Dvorak was that there are very few words that can be typed one-handed. (It turns out, according to a very short Perl script and /usr/share/dict/words, that the longest left-hand words are “yuppie” and “yippee”, and the longest right hand word is “nth”.)
I’ll try making a Dvorak equivalent of your mirroring map and report back. (It might be useful to have some keypress to switch from your regular keymap, in which Caps is obviously (?) mapped to Ctrl, to the mirrored one with Caps mapped to mirroring…)
I learned the Dvorak layout to reduce stress on my hands and wrists while typing, not to type faster. My subjective impression is that my wrists feel better now than they did 7 years ago.
I’ve seen it claimed that moving your hand from the keyboard to the mouse, especially over a long distance, also increases wrist strain. Since then, I only use laptop-style keyboards even on desktops, and again, my subjective impression is that it’s helping.
I learned Dvorak just for the sake of learning it (I can type in both dvorak and qwerty pretty instinctually now), but I’ve found the same thing as kodi; my hands and fingers and wrists get fatigued much less often. I type about the same speed on either keyboard layout.
I have completed a short Python script that examines the shapes of words using this layout and searches for duplicates. I then applied this script to my local /usr/share/dict/words.
I got 6,405 matches.
Some interesting bits:
‘poly’ has the same shape as ‘post’, so words that accept both as prefixes are ambiguous.
‘maul’ is the same as ‘carl’
‘may’ and ‘mat’ are the same as ‘cat’
‘masculation’ is the same as ‘calculation’
‘kiss’ is the same as ‘kill’ is the same as ‘dill’.
The website I link to is the text of the script. Feel free to use it as you see fit.
Vorn
I’ve typed Dvorak for over ten years now. I agree that the supposed speed benefits never really materialized for me (perhaps it’s just that I habituated to think no faster than I can type during my QWERTY years). I also switched to “natural” keyboards shortly afterward as a preventive measure. No twinges so far.
I do find it sad that most affordable ergo keyboards have the vestigal numpad. I didn’t need a numpad in 1982 on the Apple II+ and I don’t need it now, and it’d be nice to have the mouse a little closer. The best compromise I’ve found so far is to use the numpad to move the pointer (both Mac and Windows allow this). It sucks for long distances, but for some tasks (e.g. clicking a Next button repeatedly after doing some keyboarding) it has its benefits.
BTW, besides the comfort benefits of Dvorak, being able to type “shithead” without removing your fingers from the home row is very useful in Internet discussions.
I’ve had a look at the Microsoft keyboard layout generator to see if this could be done in Windows. I don’t think it’s possible to have it work exactly the same way (ie, use holding down caps lock to switch to the mirrored layout) because there doesn’t seem to be a way to stop caps lock staying on.
However, having read the comments in the Unix layout file noting that not all uppercase letters work, I reckon it could be done by having the keyboard work normally with caps lock off, and then turning caps lock on meaning that shift activates the mirrored layout. No uppercase characters at all with caps lock on, of course, but it could still be useful.
I’ll see if I can get it working anyway, and post a link if I can.
I have been a left-handed QWERTY typist since highschool, when I had no access to typing classes and high-latency access to BBS chats. I’m just used to shifting my eyes to the keyboard to type. But now you’ve got me thinking about my own insane style.
I suspect that my one-handed typing method may be good, ergonomically speaking, because it keeps the hand and arm moving around, using a lot of muscles at random and spreading the load. However it requires higher cognitive overhead, maybe, and the big drawback is looking at the keyboard while I type, which is kinda good for clearing out distractions (maybe I don’t want want to know what is blinking on my screen while I am trying to jot my thoughts) but on the other hand I have ended up typing into the wrong window enough times . . .
So, in the spirit of creative insanity that you have promulgated here, I’m thinking maybe I should try getting a physical mirror that I can mount on my monitor that my brain can use to guide the left hand to and fro accurately, and I’ll spend less time hunched over my monitor. A nice bicycle-rearview bubbly-type mirror, perhaps . . .
Thank you for inspirational insanity.
Cheers,
-danny
anyoneeb at livejournal linked what Sentynel was talking about:
http://www.microsoft.com/globaldev/tools/msklc.mspx
The most shocking part of your suggestion is the implication that you haven’t been using your caps-lock key as a control key. I can’t remember the last time I wanted to lock my caps, but as an Emacs user, I’m definitely a control freak.
1) General Arthur E. Tombofil, you’re crazy.
2) Since I use up to 35 different keyboards at 35 different machines over the course of any given day and I have configuration modification rights to about six of them, this mirrorboard thing wouldn’t make sense for me to get in the habit of using.
HOWEVER, I can see a musical application for this concept on a piano-style keyboard, perhaps using A-flat or D as pivot points. Then, for instance, my little three-octave keyboard could be “unfolded” into a nine-octave range. Hmmmm ….
While having one hand on the mouse can force you to type with one hand, it doesn’t have to.
I have a keyboard with a 3-button trackpoint (one of those eraser head things) between G, H, and B. Means I can switch between typing and using the mouse without moving my hands at all. If you’re interested, it’s manufactured by IBM (made for Lenovo on the back), and is a laptop style keyboard. USB connection, with two USB ports on it. Cost me ~100 but it’s pretty nice.
I switched to trackpoints a few years back because my desk had too much junk for me to have a mouse pad, so I had my mouse on the chair beside me. Except the mouse would run away whenever I took my hand off of it. So I borrowed an older style trackpoint kb and quickly grew to love it, though it took me a few weeks to rewire my brain to the same proficiency (I recommend Enigma for speeding the process, since it’s a mouse centered game). I now do better with a trackpoint than with a normal mouse, and I don’t have troubles using the mouse when I have the keyboard in my lap.
@ aldel:
As a programmer that uses underscores a lot, I’ve fallen into the habit of only using the left shift key, even for ! and other stuff that uses the left little finger. It’s ergonomically inefficient, but it requires more processing to remind me to use the right shift key.
@ Jerry Kindall:
I remapped my numpad to switch desktops Other than that, I don’t use it. It was kinda hard to find a keyboard that had both a numpad and a trackpoint, but I did.
I intend to try this keyboard map out in a few days, since it sounds cool.
As caged crawdad beasts rested a warted darts crew fretted Weezer sex treats.
Hyku:
Oh, Polonium
You look hoopy in Phyllo
Killin’ Jim K. Polk
–Moi
Argh.
I HATE the Keyboard Layout Creator and Windows’ implementation of multiple keyboard layouts.
When I can get Windows to switch to my custom layout (which happens occasionally), the text works fine, and backspace and newline sometimes work, depending on the program. I’ve tried various different newline and delete characters with mixed results.
My name should link to the keyboard layout file (UK English, but could probably be adapted pretty easily to US English), if anyone wants to download that keyboard layout program from http://www.microsoft.com/globaldev/tools/msklc.mspx and see if they can do any better than I did. Good luck.
I usually just keep my hand in the center of the keyboard when I’m typing with one hand. My hand is big enough to reach any key without much trouble. If I’m typing something longer than a sentence though, I just use two hands.
Dvorak is a really good layout, I’m trying to get it’s popularity spread a little since Qwerty is obsolete now that we don’t have to worry about our typewriters jamming up anymore.
By the way, I believe your spam protection could be interpreted in multiple ways.
But back on topic. I really like the direct that (4) is going in. This would be better for phones, too. I think it would be an improvement on the iPhone interface.
I believe your spam protection could be interpreted in multiple ways.
I thought about that too, except that the sum of (1+7), i.e., the sum of 8, is still…8. It’s ungrammatically, though.
The Dasher project might be of interest to you.
It doesn’t solve your keyboard layout problems, but instead it provides a way for you to type without having to worry about removing your hand from the mouse.
In fact, you type with the mouse (in a sense).
Visit the project page at: http://www.inference.phy.cam.ac.uk/dasher/
Get excited by watching this (hour long, sadly) video demonstration of Dasher, by the creator of Dasher, to some Google employees at:
http://video.google.com/videoplay?docid=5078334075080674416
Colin you are my hero, but about the one-handed-ness, not the sum of 8.
And anyways, the spam protection is totally grammatical if you read the “+” as “and”.
As someone who can’t imagine typing with one hand and who has no problem switching between mouse and keyboard, I’m intrigued by the volume and depth of comments here.
Devil’s Advocate suggestion: Instead of overloading keys on the left-hand side, use the keyboard to navigate web pages. (You are using Opera, right?)
Just kidding: I can see the benefit of having a mouse or trackpad, but this keyboard mapping strikes me as a lot of effort for little gain. Sorta like the way I spent far more time evaluating a new text editor than I’ll ever gain from using it.
What about mirroring the number pad over to the left hand side of the keyboard? I work (and therefore type) with a wacom pen in my right hand almost all the time and the only thing i’m hindered on really by it now is using the number pad, for some reason.
though honestly, wacom should put a number pad on the tablet that you can access through one of the softkeys, but that’s a separate issue.
Pingback: Jj’s Blog » One hand keyboard
As others here have mentioned, the mirrored keyboard idea has been implemented before, and I’ve long been craving one. I’m a little weary of the ergonomic implications of using caps as a switch key, though, for the sake of the pinky-finger keys. I much prefer the idea of hold-space + key, which to my knowledge, can’t be done with merely a layout file.
The caps thing is clever, though, because it’s the first approach I’ve seen that you can actually download and use
Even though the space/switch seems to be a popular idea, I’ve come to understand that nobody can make these things in hardware or software, because Mattias has a patent on the concept that they enforce aggressively. They want to be able to continue to sell it to the physically handicapped as a “medical device” at obscene prices that medical insurance usually pays for.
And In response to Jerry Kindall – don’t you DARE take my 10-key away! NUM LOCK, however, you can keep.
A few people have questioned the problem of moving between keyboard and mouse. It turns out that not only is that motion a *major* efficiency hit, in one of the few large scale analyses of workplace injury among keyboard users, the one factor that related best to injury was mixed mouse-and-keyboard use (as opposed to just keyboard use by itself.) I don’t have the citation handy, but it’s in Raskin’s “The Humane Interface” and I did find it upstream at the time (it was done using an office worker’s union as a dataset, as I recall.)
So yes, fixing the problem of *switching* from mouse to keyboard and back is worth a lot of hassle.
(The Mattias keyboard had a great introductory manual, it got you started with some left-only words, then some right only ones, then alternating words, then alternating letters – it felt like a *very* efficient way to get your reflexes to kick in. The main problem I had is that while “my hands know where the letters are”, they’re not nearly so good about punctuation, and even though I’ve mostly gotten perl out of my life there’s still a lot of punctuation in code
“Do you have a wearable computer?”
A what?
“Are you interested in alternate keyboard layouts but too lazy to learn Dvorak?”
Not really…
“Do you masturbate at your desk?”
…I’m listening.
When I typed that example sentence about the kitten, I got “tge dettev qarded tge gwvercraft” and I noticed that you mixed up the first two letters in the second “tge.”
Not to pick nits (sp?) or anything, but I just wondered if anyone else noticed it.
This whole idea is pretty interesting. I hadn’t realized how natural it is to type everything with one hand in mirror.
E owvkiu og;y owrsk g;qqiv…I mean I wonder what would happen if I tried to type a complete mirror. I guess I have my answer and the answer is I got confused.
“A few people have questioned the problem of moving between keyboard and mouse.”
Despite my response above, I don’t really question it. I find it bad enough just moving around the keyboard enough to use modifier keys. So for me, holding down a key to enable mirror characters does not offer a significant benefit over moving between keyboard and mouse.
But for the sake of joining in, here’s a thought: what if you could use the mouse to enable mirror-mode? That is, instead of holding down caps-lock while you type a letter, would it work if you could tap something on the mouse instead? Or would it be too difficult to coordinate left and right hands?
A friend of mine has written a little app called mxk (http://welz.org.za/projects/mxk) which does keyboard remapping using evdev/uinput, so you’re not restricted to X.
Google suggests the phrase “i’ll unhook my oily pink mini-kimono, you kill him in honolulu”, found here: http://lists.freedesktop.org/archives/xorg/2007-June/026017.html
I whipped up a rough Mac version, found by clicking my name. Here’s what you have to do to set it up:
• download the file (Option-clicking my name should work)
• remove the .txt extension Freewebs insists on adding (Does anyone have another permanent, free host that allows hotlinking?)
• move it to a (presumably new) folder at ~/Library/Keyboard Layouts/ (drop the ~ to make it available systemwide)
• log out and in again
• go to System Preferences > International > Input Menu, then check ‘mirrorboard’ in the list
• make sure “Show input menu in menu bar” is checked
• select it from the input menu (usually a flag in the menu bar)
• use Option rather than Caps Lock for reasons similar to those Sentynel described (Sentynel, have you tried using Alt or the Windows key?)
• remap Option to Caps Lock (or to Command, since it’s close to the Spacebar) under System Preferences > Keyboard & Mouse > Modifier Keys…
I didn’t put it together so that I can use it; I’m learning Dvorak and liking it so far. So it’s a bit unrefined right now. If anyone actually does use it, they can let me know here (I added the comments to my RSS reader) and I’ll refine it. Alternately, they can tweak it to their liking using the tool I used, Ukelele: http://scripts.sil.org/ukelele
Has anyone come accross a Microwiter keyboard? http://www.nifty.demon.co.uk/odd/mw/
My dad had an AgendA pda (http://www.gifford.co.uk/~coredump/org.htm, scroll down) about fifteen years ago and it had one of these keyboards. As a six year old I didn’t really have the patience to learn all the combinations but one day I might dig it out.