144 comments

[ 4.6 ms ] story [ 557 ms ] thread
This is a great trick, and absolutely worth doing. I have mine mapped to Hyper as well, which is tied to Slate bindings for resizing and managing windows.

https://github.com/jigish/slate

Care to post your slate configuration file? I've just started using it and am seeking inspiration.
Mine's a little crazy. :) I'm simulating logic using tortured math to cycle through 1/6th increments left-to-right, and then splitting into vertical halves if desired. It's buggy on boundary conditions, but good enough for my purposes. http://pastebin.com/qjD8TvrE
Kinesis user: caps lock mapped to shift (home row), left shift mapped to escape (vim).
I ended up doing something very similar after reading Steve Losh's article. I kept Control where it was, using Caps Lock as Escape/Hyper . The best part by far is using Caps Lock + hjkl for navigation. At work, I leave my arrow keys & numpad covered up with a mouse platform so I can keep the mouse closer.

A side effect of this was feeling completely lost when using Windows in Boot Camp. I found that there's a great piece of software on Windows called "AutoHotKey" that lets me do the same hjkl navigation.

caps lock + hjkl requires your left pinky every time you want to move the cursor. This may very well induce RSI because "using the arrow keys" is something that we tend to do all the time.

I'm using the key physically at the left of the space bar (I don't like talking about the 'name' of the key because it's very keyboard-dependent) as the modifier which allows me to move the cursor. And I move the cursor using modifier+ijkl (for ijkl reproduces the inverted T arrow cluster, not unlike how gamers like to use WASD or ESDF). I do hit the modifier using my left thumb, which is a finger much stronger than the pinky (and, arguably, such a setup is less RSI inducing).

Regarding covering the arrow keys and numpad with a mouse platform: many people opt for for a "TKL" (no numpad) or even 60% keyboard (no numpad, no arrow cluster) and typically those 60% keyboards have the benefit of coming with quality switches (also arguably less RSI inducing).

If you want to see what others are doing, two great sites are geekhack.org and deskthority.net.

FWIW I use a 60% keyboard which has CTRL at the correct place (i.e. where CAPS-LOCK is on keyboards which have a caps-lock): an HHKB Pro 2 (using the amazing Topre switches)... Which doesn't even have a CAPS-LOCK key.

Note that lately there seem to be a regain in interest in alternate setups and alternate mappings: for example the "SpaceFN" layout uses the space bar as an additional modifier (when it is held down) and ijkl to move the cursor around (once again: ijkl and not vim's hjkl and a strong finger, the thumb, to press the modifier).

Regarding remapping and "feeling completely lost" on other OSes: if you want to not have to remap your keyboard on Windows / OS X / Linux etc. you may want to buy a keyboard which has a programmable controller: your setup then works the way you want on any computer.

Thanks for the info. I actually went through a whole mechanical keyboard phase myself and went through several keyboards without numpads. I spent months using these keyboards, but in the end I found I was fastest and most comfortable typing on an Apple wired keyboard (heresy, I know). I much prefer the footprint of the Apple wireless keyboard, but I find that even though it seems like it'd be identical to the wired version, the keys aren't nearly as solid.

I am kind of curious about Topre switches, I haven't tried them yet. Only various Cherry switches.

I think the pinky RSI issue isn't so bad for me because most of the time I'm in a text editor with vi keybindings, so I wouldn't be using the arrow keys anyway. It's just nice in other apps to have that ability. In the situations where I do use my pinky, it's typically when I'm not typing very much, so I actually just move my left hand so my pinky rests over the Caps Lock key and doesn't need to move laterally. It's some movement, but still less than reaching over to the arrow keys.

Caps is a fantastic key to use for things like backspace, but if you want even more functionality, try using it with Colemak as a modifier that puts all the other common keys right on your home row: http://forum.colemak.com/viewtopic.php?id=1467
Slap that on a Truly Ergonomic keyboard (https://www.trulyergonomic.com) and you're living my life. Do it all at once and type 4 wpm for a month.

(I have the older "international" version with a number of blank keys. I remapped the left space bar to command and the lower left dead key to hyper. Tapping either shift of course generates a paren.)

I do use it as backspace (I got the idea from Colemak, which I didn't like that much, but I found this particular idea great). It's very convenient especially for deleting entire words (it's ctrl + backspace normally, but ctrl + capslock only requires one hand and it just feels easier).
I have Caps Lock mapped to Backspace. Makes total sense after seeing how out of the way Backspace is.
I've used Autohotkey (Windows) to remap my capslock to select the word my cursor is currently in. Essentially pressing ctrl+left, then ctrl+shift+right. I too have become so use to this that using other people's keyboards is frustrating. I've taken this a couple steps further, shift+capslock selects the current line and ctrl+capslock activates Sublime's multicursor feature.
This won't work in everything, will it? What about if your cursor is at the beginning of a word? Not to mention that different editors stop in different places with ctrl+arrows. Many editors have a key combo for select word already. In Visual Studio it's ctrl-w.
I've been using it for about 1.5 years, and it's been mostly consistent between applications; Notepad being the only one I've noticed with odd characters it includes in the ctrl+arrow movements. I really like the approach using Autohotkey because it becomes universal on my system, so capslock can select words in chrome, IM apps, etc. I don't have to worry that the app supports that feature.
I just disable its functionality and use it as an extra key for things such as push to talk. Getting in the hang of using as a replacement for delete/escape etc causes muscle memory problems when typing on someone else's keyboard, if you're only ever using your own then it's beneficial, kinda like switching from qwerty
I remapped my Caps Lock key to switch into a "Greek" mode for typing, since I frequently need to type Greek letters interspersed with English. (Anybody in STEM classes should know how awkward it is to do this normally.) If you have a Mac, you can do this with Ukelele, a free key remapping tool. You can even set up and add "dead key" modes (e.g. the way opt+E allows you to add a diacritic to the next letter typed). There are some really advanced configurations possible. Ukelele even still works on Mavericks.

http://scripts.sil.org/cms/scripts/page.php?site_id=nrsi&id=...

> Ukelele even still works on Mavericks.

Why wouldn't it? They didn't change the entire input system in Mavericks, did they?

Not awkward, just with a little steep learning curve. The only way to type math notation (which isn't the same character set as Greek. Compare \varepsilon with \epsilon, for example: http://www.w3.org/2003/entities/2007doc/#epsilon) is LaTeX. And for that, the only keys you really need are the dollar sign and backwards-slash.
This is true in LaTeX, but sometimes you need it on IMs, comments, etc.
You'd find that STEM professionals (and academics, as some would say those two sets are disjoints) simply write LaTeX in their mails; I even find myself saying it when conversing face to face (but you loose the slashes: "take varepsilon less than frac x over y").

That's one big strength of LaTeX: everybody (in certain professions) knows it, so it is easy to collaborate on LaTeX typeset documents.

Now that you mention it, that's what I do with my LaTeX-speaking friends too...
> The only way to type math notation is LaTeX.

No it isn't. Perhaps by far the best and most practical way, but not the only way ever to type math notation.

Try to write anything math heavy that is longer than a couple of pages in any other tool.

I'd be finishing typing a small monograph by then. LaTeX is far from perfect, but there isn't a better solution yet.

I haven't set it up since getting a new laptop, but I used to have lots of math notation available on my keyboard (e.g. AltGr, <, = would give ≤), and LaTeX set up so that I could put those characters directly in my documents, and it was so much nicer than doing everything with backslash.
Well, as a Greek, typing Greek isn't hard at all. Install the Greek keyboard layout (should be a few clicks in any OS) , switch to it and the letters should more or less make sense (a is α, e is ε, i is ι, etc).
"I’ve become quite used to it — to the point where using other people’s keyboards is inconvenient. " I stopped reading right there.
Why? Even without interesting remappings, aren't you more used to your own keyboard than someone else's?
I learned to type in a keyboarding class in high school in the nineties. I was taught to use the caps lock automatically for instances where there are 3 or more capital letters. I cannot give that up as infrequently as it happens. That is much more inconvenient to me than making that key do something else.
My Caps Lock is remapped to '='

I originaly got this idea to remap when I started playing WoW in 2006. I needed a lot of keybinds and it turned I couldn't bind 'raw' caps lock, so I had to remap to other key and = seemed like a good choice.

As a Spanish speaker who's used to using English keys for programming, I found it useful to use the Caps Lock key to change keyboard layouts.
I prefer Scroll Lock for cycling keyboard layouts
I've got it mapped to Control like a standard hacker,

but this reminds me that some years ago I had it mapped so that if I hit SHIFT-CAPSLOCK (which is a rather unusual thing to do, think about it), it would type... a tilde. I have no idea why I thought I wanted that.

Did you have a keyboard that didn't have a tilde?
Are you sure it was a tilde? My terminal emulator puts in tildes for various special characters (such as when I press the delete key).
Us Emacs users unfortunately have to remap it to control to retain sanity on standard keyboards :P
I do that by default now, too -- OS X has a few basic Emacs control keys that work in all text fields/boxes, like ^P/^N, ^A/^E, ^D, etc., and even though I rarely use Emacs itself those have become muscle memory.

(I use KeyRemap4MacBook for a couple things, including mapping Caps Lock to pressing both shift keys simultaneously, so I still have it if I need it.)

Remapping my capslock key to escape was the only way that I could finally switch to Vim. Highly Recommended.

    inoremap jj <Esc>
Best .vimrc setting ever.
Have you compared it to CapsLock as ESC? I understand Escape is in a ridiculous position on most keyboards, but I think CapsLock makes a great mode switcher, and have been using it for a few months now. (Downside being that it can't be done in vimrc, at least not in terminal vim which I use.)

The jj and jk hacks always seemed ridiculous, but maybe I'll give them a try. I think I would prefer jk for speed and fatigue reduction, or maybe even something on the left home row since I'm left-handed.

I find jk a lot more convenient. With Capslock my pinky has to move over to the next column, where as jk just sits on the home row.
As you say, you can't just tweak the capslock assignment in vimrc or by issuing a command. The great thing about the jj/jk hack is that if you end up on some random system or borrowing someone else's shell for a second then all you have to do is type ":inoremap jj <Esc>" and you're back in the groove.

I was a little skeptical about it at first as it seemed like a weird hack, but it's actually quite practical. The fact that you don't have to leave the home row to swap between modes is a huge efficiency boost.

I don't know when but very shortly after I started to use vi I learned about and used Ctrl+[, and have been doing that to this day. I still tend to use ^[ instead of Esc by instinct, even when it doesn't work in any other program.
Great post but it's over a year old. Shouldn't it be labeled as such?
That makes sense for news or trip reports, but what has changed about keyboards in the last year? Nothing I can think of.
I cut my teeth on Sun keyboards and emacs, so I always remap caps lock to control.
Disabling CAPS is one of the first things I do when I refresh a system. I've always wanted to find a better alternative, but as of yet, it hasn't presented itself.

I've thought about mapping it to alt+tab since I use VNC quite a bit.

Does nobody use the Caps Lock key as a caps lock? Pretty useful for that.
Lots of people have no need for locked caps.
BUT IT MAKES SARCASTIC COMMENTS SO EASY TO WRITE.
“Angry” languages aren't used much anymore (FORTRAN, COBOL, BASIC), so there is no need for Caps Lock.
I guess, but do you still not have a use for it? What if you're talking to git and referring to HEAD? Or if you're #defining things in C? Or if you're writing an email and you want to emphasize a few words?
I hold left shift with my pinky or right shift with my thumb. Unless I do a lot of all-caps typing it's not a problem.
Any reasonable text editor will have more efficient ways to capitalize things than dedicating one of the most convenient keys on the keyboard to it. I prefer M-u (by word) or C-x C-u (by region) in emacs.
Interesting enough, all of the standard library for Common Lisp is in caps. However, the default reader upcases all unescaped characters.

A somewhat common way of getting case sensitivity without (CONS (CAR x) (CDR y)) is to change the reader to be case-inverting (which then requires you to type in all standard-library symbols as lowercase.

If someone's editor has got a convenient way to capitalize parts after they've been written, I'd be interested in knowing how it works. You can invert case with ~ in vi, but it's not so great for #defines and such (you capitalize every letter in these, and ~ works on a letter at a time).
Tilde can be used as an operator in Vim, so typing ~w will change the case from the cursor to the end of the (w)ord :)
Vim provides operators for changing case: gu for lower case, gU for upper case and g~ for swapping case.

For example, gUaw changes the current word to upper case. guu changes the whole current line to lower case.

In visual mode, you can use just u and U.

Bonus useless tip: g? encodes and decodes rot13.

Thanks, I guess that explains why gg is needed to go to top. In my editor it's just g. Maybe I'll come up with something clever.
I'm no Vim wizard, but don't most of the commands work like that? You could type e.g. 6~ to change the case of 6 letters at once.
We have entire departments that use it almost all day long. Then again, we could probably fix that by having auto-capitalizing fields, but you know you're talking to someone in IM/Email that uses caps all day, when they reply in caps.

ANYWHERE FOR LUNCH IS FINE LET ME KNOW WHEN YOU WANT TO LEAVE

Yeah, every time this subject is brought up, I think to myself that I must be the only one who actually uses caps lock for its intended purpose. I spend a lot of my day writing capital letters at work, and having to use shift for every letter would kill me. Instead I can hit caps lock then start typing like normal.
i ran org-mode with vim so i set caps lock key to ctrl and right Cmd key to esc.
I can't stand the caps lock key at all. I pop them all off my keyboards.
I just remap caps lock to act as a random modifier each time it's pressed. It seems absurd to set it up any other way.
I use caps-lock instead of shift. For example, I do "CAP-LOCK, LETTER, CAPS-LOCK" to type a capital letter. It's less efficient, yes, but it works just fine for me. Explaining this to anyone gets "you're kidding" views, but I assure you, the caps lock key is already quite useful to me.
Key sequences -- even though they may involve more strokes -- are simpler in some ways than chording, so I can see why that would be attractive.
It's actually unclear whether it's less efficient or not. Sean Wrona, one of the fastest typists in various competitions, generally uses it in place of shift.

He posts about it here: http://forum.colemak.com/viewtopic.php?pid=8851#p8851

The first thing to come to mind when I read the parent was Sean Wrona too...

I use StickyKeys which lets me hit Shift and then a letter, which I think is even faster since you don't have to "un-shift" like you would with CapsLock.

The ergonomic considerations of what he proposes are a little terrifying to me.
One of my work mates uses this technique too. I remap my caps to ctrl. Hilarity ensues whenever he tries to use my keyboard for pair programming.