top | item 14984167

Show HN: Crackle – keyboard layout for programmers

114 points| jackcouch1 | 8 years ago |medium.com | reply

110 comments

order
[+] sedachv|8 years ago|reply
The best modification that you can do to your keyboard layout is to adapt the MIT Lisp Machine keyboard layout. The changes are small but very significant, work with either QWERTY or Dvorak, and you can do them on any PC or laptop keyboard[1]:

1. Change the layout of modifier keys from Control-Windows-Alt-Spacebar-Alt-Menu-Control to Windows-Alt-Control-Spacebar-Control-Alt-Windows (bind the outermost modifier keys to Super and Hyper if you use Emacs). This will let you do keyboard chording easily with either hand and eliminate "Emacs pinky": https://retrocomputing.stackexchange.com/questions/495/what-...

2. Change Caps Lock to Backspace (RUB OUT on Lisp Machine keyboards)

3. Swap parentheses () for square brackets []

[1] Not on OS X though. Apple does not provide a way to do these remappings on OS X, and breaks the keyboard internals and consequently third party tools like PCKeyboardHack/Karabiner with every OS X release. I tried early this year with Sierra and Karabiner-Elements and this did not work. Install Linux or OpenBSD.

[+] stephengillie|8 years ago|reply
The best improvement you can make to your mouse is adapting a 12-key thumb layout:

  F5    | Up    | F2
  Left  | Down  | Right
  Tab   | Delete| Backspace
  Enter | Space | ESC
How many times an hour do you have to reach over to the keyboard, press an arrow or Enter, then have to reach over and find your mouse again? All those seconds add up! Do your eyes leave the screen to find your mouse? This configuration lets you maintain your state of flow, because your hand almost never leaves your mouse, except for actual typing.

You'd be surpised how many tasks can be performed with just the mouse (and the left hand for CTRL+C,CTRL+V). This is the most efficient layout I've found. I've used this for about 5 years now, for massive performance gains in many administration and development roles.

[+] wry_discontent|8 years ago|reply
Can't you rebind them through the regular keyboard preferences? Even without, _just_ binding them that way in Emacs is a huge improvement for chords.

Also, as much as I love Linux, it's not really feasible for anyone doing professional development to just up and bail on an operating system. There's IT infrastructure built around using OSX at some jobs.

[+] jackcouch1|8 years ago|reply
That wouldn't solve the problems I was after. But you can now do that using Karabiner Elements on Sierra with the latest build.
[+] donatj|8 years ago|reply
"[T]he evidence in the standard history of Qwerty versus Dvorak is flawed and incomplete. [..] The most dramatic claims are traceable to Dvorak himself; and the best-documented experiments, as well as recent ergonomic studies, suggest little or no advantage for the Dvorak keyboard."

It's an urban myth that Dvorak is any better than qwerty.

[+] shpx|8 years ago|reply
I used to be around 80 wpm with qwerty, now I'm 65 on dvorak, but it's much more comfortable.

It's hard to explain, but it feels satisfying to type. When I think about a word I'll sometimes think about what motions it takes to type it (on dvorak) and it just feels comfortable in my head. No regrets about the loss in typing speed.

The worst part about using dvorak is that no software is (or ever will be) designed for dvorak. Vim and emacs still work great, most shortcuts are phonetic and jk are where cv are, so I don't really mind.

I have been waiting for someone to sit down and redesign the keyboard layout for programming, and maybe this is it.

I've been typing on Programmer Dvorak[0] for 3 over years.

[0] https://www.kaufmann.no/roland/dvorak/ it comes with most (all?) Linux systems `setxkbmap -layout us -variant dvp`

[+] etplayer|8 years ago|reply
>It's an urban myth that Dvorak is any better than qwerty.

I think you're wrong. The Carpal X keyboard layout optimizer consistently ranks Dvorak as better than QWERTY for "effort" (which takes into account things like finger travel distance and how good we are at using certain fingers).

You can see the findings here: http://mkweb.bcgsc.ca/carpalx/?typing_effort

Their conclusion was to determine which layout is the best - their own layout, which I use, called QGMLWB was determined to be the one which requires the least typing effort. I'd recommend people try it.

[+] nomel|8 years ago|reply
How is this relevant to the article?

And, you rarely hear of Dvorak typists that will say they switched for speed and stayed for the speed. It’s almost always that they switch for the myth of speed and claims of comfort, but stayed for the comfort.

[+] Zekio|8 years ago|reply
After programming with a danish keyboard layout for a few years which require double modifier such as ctrl + alt + 8 to make { or [

I noticed on US keyboard layout you only have single key modifier and only have two characters per key instead of three, which I then bought a laptop with and it is an amazing difference after typing for 8 hours especially because you do less weird postures with your hand in order to make a single character.

Never gone back to the danish keyboard layout, I now only keyboards with the US keyboard layout and it is actually possible to use hotkeys in most software now as well yay!

[+] btschaegg|8 years ago|reply
I had the same experience. I tried the US keyboard because I was starting to use Vim-bindings and stuck to it. Now I have actually more trouble with keyboards that use my locale (mainly because of muscle memory).

For umlauts, I use the US-intl keyboard, which works great. The only thing that bothers me a bit is that I can't configure vanilla Windows to use capslock to switch between US and US-intl (which works on my private Linux machine).

On another note: I find it really strange that most keyboard locales actually change very little except for screwing up programming symbols...

[+] ogrim|8 years ago|reply
I am in the same situation. I only switch to Norwegian layout when typing emails, all other times I use US layout. The keyboard is blank, so no confusion with keys either.
[+] jdc0589|8 years ago|reply
this is a problem that a lot of people just don't notice because they are so used to a sub-optimal positioning of symbol keys/etc... When I built an ErgoDox and started using it full time a few years ago all the symbol keys moved (still not optimized in the default layout in my opinion), and that's when I finally realized it could be better. The ergodox (or any diy board with its own customization firmware) is cool cause you do all your remapping via firmware and it just looks like a normal old keyboard to the computer.

Here's my qwerty based ergodox layout; its still not great, but its miles better than normal symbol layouts on a std keyboard for me. I really only use layers 0 and 1. I need to add a layer 2 shift key and put arrow keys under the ikjl key positions, I just haven't done it yet. https://www.massdrop.com/configurator/ergodox?referer=MSCE5S.... I'm an osx user for the most part, hence the easy thumb access to the command/windows key for the left thumb.

[+] jtreminio|8 years ago|reply
Can you upload your config somewhere else? Link is not working for me.

I purchased an ergodox ez, and while I love the feel of the mechanical keys, the default layout, and any layout I can up with, was too radically different from normal qwerty.

So I purchased a matias ergo pro, which is great, and can do negative tilt which the ergodox can't seem to do natively.

[+] Rotareti|8 years ago|reply
After 25 years of typing I decided to switch to the vi style of editing. Now, about 1 and a half years later, I use it everywhere and I regret that I haven't started earlier. I find it relaxing and it keeps me in a more content state while programming.

Btw. I'm not using Vim, except for some small edits from the terminal. But there is a vi plugin for the most important tools that I use: (JetBrains:ideavim, Firefox:Vimperator, ZSH:vi-mode, Emacs:evil-mode, Atom:vim-mode)

I think a lot of what the author tries to solve could be solved by switching to vi-style editing. He introduces two new modifier keys to increase the number of actions you may bind to a key, Vi uses modes (normal-mode, insert-mode,..) to achieve the same thing.

But I really like what the author does with the brackets! Putting the opening brackets on one hand and mirror the closing brackets onto the other makes a lot of sense to me. I think I'll try out something similar by switching ! with {, + with }, @ with [, _ with ] , etc.

[+] nemetroid|8 years ago|reply
And still the numbers are in order. I mean, how often do you write the number 6? Does it really deserve to be right in the middle, while 1 is the hardest to reach?

I am only half joking. I've yet to see a keyboard layout that puts the numbers in a different order.

[+] ComputerGuru|8 years ago|reply
That's funny because 6 is actually the hardest to reach for anyone without extra-long index fingers.
[+] kozikow|8 years ago|reply
I created a layout based on similar assumptions a few years ago. Blog post: https://kozikow.com/2013/11/15/the-only-alternative-keyboard... (including OSX implementation). I also created Linux implementation: https://github.com/kozikow/keyremaplinux .

It's also targeting "special" keys rather than letters. The difference is not using modality, but utilizing the right cmd (or the right alt on linux) to activate a layer with all special characters. Conflicts with qwerty are minimal, so you can install it on top of qwerty.

[+] mmanfrin|8 years ago|reply
Wow, medium is now modal-overlaying a sign-in/up screen on load; they are really doubling down on those A/B tests.
[+] __jal|8 years ago|reply
Not the same thing at all, but when I used to write a ton of Perl, I had a board on which I mapped the shift-number keys (punctuation) to the F-keys. It was really rather nice.

These days I mostly use keyboards with fully programmable firmware (QMK, when possible) and remap things as needed. Things that stay pretty consistent are swapping caps lock and control (the way dog intended it), adding pipe as layer1-~ (shift-\ is terrible to type with one's right hand, and somehow I haven't trained myself to do that two-handed), and mapping parens to later1-o and -p.

Never played with a Dvorak or Colemak.

[+] isodude|8 years ago|reply
Long time Dvorak fan here. Great to see an initiative like this :)

When I have to use Apple products I tend to use Karabiner Elements to swap place between Right ALT and Caps Lock, to ease with all the combinations. Seems to do the trick to avoid pain.

Also there is a nice implementation called Svorak A5[0] of this (although based on the Swedish Dvorak layout), that I learned and find productive.

0: http://aoeu.info/s/dvorak/svorak

Edit: It's Right ALT and not CMD that's switched.

[+] reacweb|8 years ago|reply
I am french and recently I had to use a qwerty keyboard for programming. The layout is so nice to use I wonder if I will no switch definitely on qwerty. For example the keys '<' '>' and '/' for xml documents. I guess many syntax have been adopted in languages to take profit of keyboard layout.

I think you under appreciated the luck you have using a qwerty keyboard compared to all the international silliness.

[+] breakintheweb|8 years ago|reply
As an american living/working in france I feel the pain of the azerty.

Si vous décidez de changer, je recommande le français canadian clavier. C'est le qwerty clavier avec quelque modifications mineures. Je pense que c'est un bon conpromis.

[+] pkamb|8 years ago|reply
Is there support is OS X for changing normal letter keys into properly functioning modifier keys?

CMD with my thumbs, and Shift, are the only modifiers I can comfortably type. RSI pain in my pinkies really limits Option and Ctrl.

It would be interesting to have a chording setup with keys on the home row. Hold "D" + type a key with your Right hand, and vice versa for "K" and the Left hand.

[+] jackcouch1|8 years ago|reply
I actually got really excited about doing that, but it turns out that apple keyboards are only reliable for a total of 2 simultaneous.
[+] Tade0|8 years ago|reply
My biggest problem with keyboard input is not the positioning of the keys - most of the time it's either weird default shortcuts(like Ctrl + Alt + Shift + Insert) or the lack of a numpad - It's remarkable how good of an idea it was to have the plus sign under one, pretty large key.

Also smaller keyboards(think 13,3" laptop) are to me plain bad, because everything is so crammed.

[+] TheAceOfHearts|8 years ago|reply
IMO, macOS has the most sensible keyboard shortcuts [0]. Moving the primary modifier from Control to Command might seem odd at first, at least that was the case for me when I first tried out macOS. But in the long run, I think it's more comfortable.

Common User Access [1] tried to fix the chaotic mess that was DOS... But by then it was too late, so we ended up with a few really stupid shortcuts. My least favorite is Alt+F4 / Ctrl+F4. On macOS you close documents or windows with Cmd+W, or you close the whole application with Cmd+Q. Having to reach up to the F-row is awkward.

[0] https://developer.apple.com/macos/human-interface-guidelines...

[1] https://en.wikipedia.org/wiki/IBM_Common_User_Access

[+] jackcouch1|8 years ago|reply
On the pop layout I have a bunch of keys that are used for shortucts. You could remap any of those to CTRL + ALT + Shift + Insert or whatever other combos you hit often. Also, tying numbers on crackle is as easy as typing capital letters so I don't really miss the dedicated numpad (but no 10 key typing of course).
[+] keithnz|8 years ago|reply
have you tried Vim? or Vim keybinding in your favorite editor?
[+] HurrdurrHodor|8 years ago|reply
I have been using http://neo-layout.org/ for years now and it works very well comes out of the box with Linux and does pretty much the same. If you type only in english you will be wasting a few keys because it has german umlauts but it is imho still nicer than qwerty.
[+] anotheryou|8 years ago|reply
At least with the windows AHK implementation you can also keep the qwerty layout and just use the two useful additional layers with the special characters and arrow+number keys.
[+] tomlu|8 years ago|reply
Why do you need both snap and pop? I use something similar, but get by perfectly well with only one layer for all programming symbols. Seems your life would be a little easier if you didn't have to surrender another two keys for your pop modifiers.
[+] jackcouch1|8 years ago|reply
I wanted to keep all of the keys fairly close to the home row. If I do that I can't fit all of them under just snap. It's already full.
[+] Graziano_M|8 years ago|reply
I find the better approach is just to use a keyboard layout you like, and then use hotkeys on top of that. It's best if they are standard. OSX does great at using readline hotkeys. ctrl f, b, h, d, e, a, w, u are all used daily by me.

They are: * f - forward char * b - back char * h - backspace * d - delete * e - end of line * a - start of line * w - delete word left * u - delete line left

[+] epx|8 years ago|reply
The standard PC-104 keyboard is indeed bad layout. I think the biggest benefit of such a small layout is the size, but a 60% keyboard is readily available and yields this advantage right away. For people that can't live without arrow keys, a 65%. I'd buy a hard version of this keyboard though, I am curious about using a 40% layout...
[+] Insanity|8 years ago|reply
I could not live without my 60% keyboards anymore. I have one for at home and one for at work, and I'll never use a full-sized keyboard anymore. They feel so clunky and take up unnecessary space.

The next board I'll be building will be a 40% board (Hopefully the minivan [0) though I don't think I will use it for coding. My main use for it will be just typing tests and recreational use.

[0]: https://f3a98a5aca88d28ed629-2f664c0697d743fb9a738111ab4002b...

[+] jackcouch1|8 years ago|reply
I just can't stand the idea of walking around with an extra keyboard with my laptop. And the few small keyboards I've tried still don't place all of the special characters in easy to remember places.
[+] notananthem|8 years ago|reply
Posting from a 40% 3 layer keyboard... heck yeah. Stupid arbitrary keyboard layouts are awesome, added benefit is nobody will ever come up and be like let me type something into youtube to show you.
[+] isodude|8 years ago|reply
You mean when a colleague comes over and want to show you what they mean by doing it themselves and you're like, nope, won't work.