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.
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.
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.
"[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.
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.
>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).
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.
For Dvorak, aren’t the frequently used keys (for English) under the fingers on the home row? You can measure travel distance of the fingers, for example, on a novel, etc
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.
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!
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...
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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).
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.
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.
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.
Dvorak users in this thread should really give Colemak [1] a try. Dvorak has a number of issues [2] in modern usage and is also harder to learn; many more keys change from their QWERTY equivalents.
I have used QWERTY, Dvorak and Colemak for multiple years and Colemak is the clearly the best of the there for me.
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
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...
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.
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.
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.
[+] [-] sedachv|8 years ago|reply
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
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
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
[+] [-] donatj|8 years ago|reply
It's an urban myth that Dvorak is any better than qwerty.
[+] [-] shpx|8 years ago|reply
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
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.
[+] [-] melling|8 years ago|reply
http://patorjk.com/keyboard-layout-analyzer/#/main
Xah Lee has a heat map:
http://xahlee.info/kbd/keyboard_dvorak_layout.html
[+] [-] nomel|8 years ago|reply
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
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
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
[+] [-] jdc0589|8 years ago|reply
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
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
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
I am only half joking. I've yet to see a keyboard layout that puts the numbers in a different order.
[+] [-] limeblack|8 years ago|reply
In fact Dvorak originally had the numbers in a different order https://en.m.wikipedia.org/wiki/Dvorak_Simplified_Keyboard
[+] [-] ComputerGuru|8 years ago|reply
[+] [-] kozikow|8 years ago|reply
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
[+] [-] __jal|8 years ago|reply
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
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 think you under appreciated the luck you have using a qwerty keyboard compared to all the international silliness.
[+] [-] breakintheweb|8 years ago|reply
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
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.
[+] [-] pkamb|8 years ago|reply
https://github.com/tekezo/Karabiner-Elements/issues/153
[+] [-] jackcouch1|8 years ago|reply
[+] [-] Tade0|8 years ago|reply
Also smaller keyboards(think 13,3" laptop) are to me plain bad, because everything is so crammed.
[+] [-] TheAceOfHearts|8 years ago|reply
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
[+] [-] keithnz|8 years ago|reply
[+] [-] HurrdurrHodor|8 years ago|reply
[+] [-] anotheryou|8 years ago|reply
[+] [-] tomlu|8 years ago|reply
[+] [-] jackcouch1|8 years ago|reply
[+] [-] thebelal|8 years ago|reply
I have used QWERTY, Dvorak and Colemak for multiple years and Colemak is the clearly the best of the there for me.
[1]: https://colemak.com/
[2]:https://colemak.com/FAQ#What.27s_wrong_with_the_Dvorak_layou...
[+] [-] equalunique|8 years ago|reply
[+] [-] Graziano_M|8 years ago|reply
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
[+] [-] Insanity|8 years ago|reply
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
[+] [-] notananthem|8 years ago|reply
[+] [-] isodude|8 years ago|reply