
How a keyboard changed what I look for in an editor - luu
http://devblog.avdi.org/2015/06/04/how-a-keyboard-changed-what-i-look-for-in-an-editor/
======
Todd
This is why I always loath buying a new laptop. The first thing I have to do
is look at the keyboard layout. Where did these designers try to fit the
cursor keys this time? Where did they try to innovate on space efficiency
using those 'disposable' keys: Home/End/PgUp/PgDn/Ins/Del?

I learned on an IBM compatible 101 (now 104) keyboard. I trained my hands
against the 'correct' cursor management key layout: the inverted-T and the
cluster above. It's not optimal, but neither is the saxophone. That said, you
don't see too many saxophone designers changing the placement of the keys or
inventing new fingerings. Not so for keyboards. Most of the innovation happens
because of some industrial design requirement or some designer's whim (e.g.,
why do we still have this insert key here? Nobody uses it! Let's get rid of it
and add a larger delete key). I'm not referring to the more interesting
innovation happening on behalf of heavy keyboard users, like those mentioned
in the article.

It used to be somewhat difficult to find modern 101/104 keyboards. I thank the
code gods often, now that we have such a rich ecosystem around conventional
keyboard designs. I now have a problem where I look for an excuse to buy a new
keyboard to try out for one of the spots that I program at frequently, so I
can just move my laptop and plug in. My favorite so far is the Cooler Master
QuickFire Tenkeyless.

~~~
fit2rule
What I love doing - re-training myself to use a PC-101 keyboard after a week
or some days using the rMBP on the road .. nothing funks up my flow more (in a
good way) than going from the hotkeys of OSX to those of a moderately standard
fvwm-based Linux desktop, and having a full keyboard switch-up to boot. I kind
of think such small experiences are good for you, so I delight in it happening
when it does ..

However, it terrifies me to use my friends' Dell and Lenovo machines, the key
placement is often perplexing. I somehow think the layout is intended to bond
the user to the platform, though, and few companies apply that as succinctly
than Apple.

~~~
McUsr
I switch the capslock and the control key, so that I have a fairly standard
101 XT key keyboard layout. I also "flip" the function keys, so that I have to
press fn-f12 to increase the volume. I do that through keyboard pane of System
Preferences. ctrl-F4 is then a goodie, that switches windows through the
z-window buffer, independendt of the App. You can also mod your keyboard
layouot through the cocoa text system, and then you all of suddenly have keys
like ctrl-shift a and ctrl-E, ctrl-G (cancel) that works every where. I
basically have emulated most of emacs in my modification of the cocoa text
system, so that it works in every app that uses the cocoa text system. I have
also bound up a lot of automator services to the free combinations of
function/modifier keys. I am a happy user.

------
dperfect
Honest question: do other software engineers write code so quickly that
keyboard efficiencies _really_ make a significant difference in productivity?

I agree that familiarity with a keyboard layout is important, as is
familiarity and confidence with a given editor/IDE (frequent switching between
keyboards/editors does seem to slow me down a bit), but beyond that, are you
really feeling held back by the speed at which you can move characters from
your brain to the computer? My own experience shows that much more time is
spent just thinking about the problem at hand. Even when it comes time to
write, I rarely (if ever) feel like the keyboard input part is slowing me
down.

~~~
spudlyo
It's not just about how fast you can push code out your brain, but how fast
you can manipulate code in your editor. Uppercase that constant, move
subroutine bar to file foo, indent this section, move this code block 'til
after the widget is frobbed, etc. These sorts of boring and tedious editing
tasks are the ones I'd really like to speed up, and most of them all require
the use of some kind of meta key.

It's not just programmers who want to be able to edit quickly, as an ops
person sometimes I'm called upon to bang out and edit a lot of UNIX shell
commands. Sometimes I'm doing this in tense SEV-fucking-0 situations where
being able to edit and type quickly has a real benefit.

As an emacs user, my shell editing commands, editor editing commands, and text
I type into GUI OSX text widgets all use the same control/meta key editing
sequences. I also use a Kinesis, and use the two largest keys on the left
'thumb island' for control and meta. When I'm away from my Kinesis I use caps-
lock for control and ESC-[ for meta.

~~~
Retric
I think some of this comes down to tool quality. I more or less never do the
kind of repedative tasks that that your talking about.

------
tormeh
Is typing really such a big issue for programmers? I don't know about everyone
else, but typing is perhaps 0.5-1% of my programming time. Is this different
for other people?

~~~
mwfunk
I wonder about this every time the subject of editors comes up. There's a
perception of efficiency for sure, but I wonder how much actual efficiency is
gained in most cases. I just don't spend a lot of time on actual typing when
programming, vs thinking about the code or testing or debugging or sifting
through documentation. Plus I'm not on the same machine all the time, so lots
of customization requires extra effort every time I have to jump on a freshly
installed system.

~~~
farresito
A lot of people don't use vim because of its efficiency; they use it because
it helps avoiding distraction and it's less tiring.

------
tangled
I used to have a Happy Hacker keyboard and write Java (and other languages) in
a customize emacs environment. These days I use a regular mac keyboard (so I
can easily transition between my macbook and desktop setups) and run IntelliJ.
And I _feel_ like I'm a whole lot faster writing production-quality code.
There are definitely a few annoyances when using the IntelliJ emacs key binds,
but this is more than compensated by being able to do things like
automatically download and jump to referenced packages and having the IDE
suggest code improvements ("I've noticed that you could be using the Java 8
lambda syntax here..." / "Do you want to remove these unused imports" / "This
value may be undefined"). And now I can't write Java without IntelliJ, and I'm
going to fail my next whiteboard interview ;)

~~~
bd_at_rivenhill
I use a Happy Hacker keyboard in a customized emacs environment, but I'm
pretty much Linux only, so no issues with transition between laptop and
desktop, although I do have an older Thinkpad and the layout is slightly
different, but not enough to screw me up. I cut my teeth on Sun Sparcs, and
haven't found a layout that I like better. In fact, I actually have two
keyboards; one for home and one for work, and the latter has a lot of
"mileage" on it because it regularly travelled with me from New York to Hong
Kong.

------
wilkystyle
Interesting article, but the author mentions exactly why I could never get
into a location-specific setup like a keyboard and foot pedal; I shift
locations far too often (I'm currently working remotely from a Starbucks at
the moment).

While maybe not going as far as becoming proficient in whatever setup could be
considered the "lowest common denominator", I prefer to use a setup that is
flexible across locations and environments. There's a lot of freedom in being
able to move about between workstations and locations and still be fast and
capable.

~~~
gkop
A foot pedal is no less discreet and portable than an external mouse, and
those are pretty widely used and accepted at coffee shops (it could even be
argued that the external mouse consumes more valuable space than the foot
pedal - the mouse requires lateral table space and elbow room, while the pedal
is literally on the floor beneath your feet).

Likewise I know developers that bring external keyboards like the Kinesis in
their backpacks to wherever they want to hack.

Edit: that being said, you're right that it adds up. I believe the author of
the article also uses a vertical mouse. That's a lot of gear to haul to
Starbucks!

~~~
digi_owl
These kinds of issues don't boil down to the objective of size and space
needs, but the subjective of what everyone else is doing.

~~~
gkop
In other words, one might feel uncomfortable being the only person in the
coffee shop using a foot pedal because you don't want to break the mold? Seems
a poor reason when the foot pedal could boost your productivity and/or prevent
injury without adversely affecting your coffee shop neighbors.

~~~
digi_owl
It may be a poor reason for anyone used to thinking causes, effects and
objective effectiveness.

But in the end humans are social animals. Thus peer approval, even if we don't
know them by name etc, carry mental weight.

~~~
gkop
And we evolve! :) Eg., it's been acceptable for some time to operate an iPad
with an external keyboard at the local hipster coffee shops. I'd argue that
_anyone_ using a foot pedal at all is an early adopter - who knows what
Starbucks' digital denizens will be using in a couple years? But we will
arrive there faster if some of us eschew the lowest common denominator, even
if we look funny doing so and have to haul around a peripheral or two or
three.

~~~
digi_owl
Having an Apple rep demo it on stage at the next WWDC may help spur
adoption...

~~~
gkop
Touche.

------
zachrose
When two programmers compare preferences, it usually seems like they've
reached the same level of fluency by standing on completely different piles of
input devices, editors/IDEs, languages, plugins, transpilers, etc. Arguments
about the superiority of one part of their pile assume that the other person
is in a position to need those things.

"Textmate? CoffeeScript? But how would you ever navigate your 900-line files
without Vim?"

------
Trufa
Seriously, the thought about foot pedals had never crossed my mind, AT ALL,
even after so many years of reading tech news, it's a completely new concept.

Disregarding the practicality or the actual use, I think it is a very
interesting concept and possibility that could be explored.

~~~
casion
Uh, it's not a new concept. I had foot switches for typing back in the late
80s. I knew quite a few people in the 90s that were big on the concept too. It
was a bit of a fad when the first round of ergonomic keyboards started
becoming popular.

For a non-anecdotal perspective, emacs users have been doing this for quite a
while
[http://emacswiki.org/emacs/FootSwitches](http://emacswiki.org/emacs/FootSwitches).
go ahead and search for foot switches as well. They all look old and dated
don't they? There's a reason for that.

It's not talked about much because it's difficult to learn, non-portable and
the need for foot switches is mitigated by proper technique when typing.

~~~
Trufa
Yes, I was just surprised that I didn't ever hear about it. It's not that it's
something new, it's clearly not :)

------
aidos
Most Mac users on here are probably used to the US layout of keyboard. Check
out the UK version for a mean bit of design. The left hand shift key barely
exists and the return key is a remote sliver. I always buy the US keyboard
when I get a new machine.

[http://i01.i.aliimg.com/wsphoto/v1/1853014535_2/Wholesale-5P...](http://i01.i.aliimg.com/wsphoto/v1/1853014535_2/Wholesale-5Pcs-
X-UK-EU-Keyboard-Cover-Skin-Protector-For-MacBook-Pro-Air-13-15-17.jpg)

~~~
Trufa
I've gotten so used to the Spanish ISO layout that I don't really need it on
the actual physical keyboard, I think it is a very practical layout for
programming.

Specially considering all the braces:

[] is done by Alt Gr and the two (consecutive) keys that come after the "p"

{} is done by Alt Gr and the two (consecutive) keys that come after the "l"

() is done by shift 8, 9

\|@#~ Are all done with Alt Gr and the º key, 1, 2, 3 and 4.

Maybe it's just being used to it, but I find it extremely practical.

~~~
dagw
Funny. Despite being in Sweden I always try to get US keyboards just to avoid
the whole AltGr thing for braces.

~~~
cpach
How do you write åäö? :)

~~~
dagw
Either alt+134 etc on the numpad (windows), holding down the a or o key (OS X)
or by temporarily changing to Swedish keyboard layout, depending on the
situation.

------
erikb
Huge fan of the conclusions. And many hackers do that already, spending
hundreds of dollars for high quality key boards and mouses. But we certainly
haven't reached the point were our tools are as professional as a pilot's.

------
jaimebuelta
I have a Kinesis and I've give it a good go. My main problem with it is that,
while typing is absolutely wonderful and comfortable very quickly, you should
keep your hands in the proper position the whole time, or you can't do
anything.

For example, use a mouse and copy, or even just to use a mouse gets to you for
the proper position. A typical use of c select with a mouse, copy, move the
cursor and paste, is very weird. Also something like write something with a
pen and move pages up and down. A regular keyboard allows you to move right
and use your left hand for right keys (cursors, etc). With the Kinesis, this
is uncomfortable.

The pedal is also weird and needs a lot of adjustment.

I used it for a while, and encourage to everyone around me if they want to
give it a go, but I moved back to a more regular keyboard...

------
madez
I think there is not enough innovation happening in the space of HID's. Both
the software and the hardware are limited. Sometimes you see innovative
keyboards, but they are not revolutionary because they always think they have
to provide the legacy 10x-keys design. And software always expects to receive
those keys, which is a huge problem.

In Steam Big Picture you can type with a gamepad if you go to the friends-
chat-mode. Why is this limited to Steam Big Picture? This should be
functionality provided by the system to be used by all applications. And
applications should adapt the input layout and themselves depending on the HID
that is being used.

I wish it'd be possible to use text editors with a 3D mouse or pedals and a
camera, without having to invest a huge amount of time to make it work.

~~~
ralfd
Hm, I searched for the keyboard and a review on Anandtech came up. I am
linking to the typing test benchmarks:

[http://www.anandtech.com/show/7125/kinesis-advantage-
review-...](http://www.anandtech.com/show/7125/kinesis-advantage-review-
longterm-evaluation/4)

In Typing tests (granted Aesop's Fables, not programming) there isn't really
that much difference. Even compared to a Laptop keyboard.

In 10-key typing (entering numbers) the Kinesis Advantage is really bad.

------
lolive
The pedal sounds appealing. But the lack of portability of all these hardware
will not convince me. I still stick to the unbeatable keyboard hack I
described some days ago:
[https://news.ycombinator.com/item?id=9605791](https://news.ycombinator.com/item?id=9605791)
(i.e arrows, return, pgup/pgdn, delete/backspace available at the middle of
the keyboard)

Another feature that is quite interesting if you code with IntelliJ or Eclipse
is the "Quick Access" key. Ctrl+3 on Eclipse (hint: remap this to a more
convenient key NOW!) or Ctrl+Shift+A on IntelliJ (same hint applies), and all
you commands can be accessed by quick typing. No need to go for Ctrl, Alt or
any key combination.

With all this, _any_ keyboard is efficient.

------
Sanddancer
Right now, I'm using that keyboard's less wealthy sibling, the kinesis
freestyle. I've found that it's a lot more flexible, as I can stop, do other
things, like use a drawing tablet or mouse, without the needing to put my
hands in the bowls like i would with the advantage. Also, I have smaller than
average hands, so I get the feeling that the advantage would not be as useful
for me.

Now, what I'd really like to see is keyboards made with different key sizes. A
3/4 size keyboard that has proper mechanical switches would be very, very nice
indeed. Hell, I actually like 15" laptops with full keyboards because that
tends to mean that they've shrunk each key to fit, and it gets to right about
the sweet spot in size for me.

~~~
hellbanner
I love the freestyle. First keyboard I've used without hand pain. I recommend
rolling a t-shirt or putting a foam pad below your wrists to prevent strain.

~~~
Sanddancer
I got the accessory kit with the wrist rests and slanting mechanism at the
same time as the keyboard, so that part's not an issue. I got mine before I've
started having wrist pain as a preventative measure. I'm 35 with weird genetic
conditions regarding my joints, I don't need to exacerbate things.

I think the other piece of the puzzle is that a lot of people don't properly
adjust their chair and/or monitor for good ergonomics either. Eye level with a
monitor should be right about at the top of the screen. It takes a tiny bit of
getting used to at first, but then you really start noticing how much less
neck strain you have.

~~~
hellbanner
Yup! I've been trying out a standing desk about a quarter of the time and
that's been helpful too.

------
hoggle
I've been interested in Kinesis keyboards for a while now but am still
undecided because the more I think about the whole problem of HCI from a
programmer's perspective the more I question my own assumptions. I'm wondering
if something far out like the Twiddler could really work for somebody living
in a text editor with vim bindings most of the day. If anybody had to share
their experience with it I would be very interested to hear it (e.g.
experience working with your legs up).

[http://twiddler.tekgear.com](http://twiddler.tekgear.com)

~~~
verisimilidude
Though I've never used the Twiddler, I did spend about a year using a
different one-handed keyboard due to injury. It was a FrogPad. It's a fine
device for typing out sentences, but perhaps not ideal as a code editor. I
eventually set up a full-sized keyboard right next to the FrogPad because it
just felt easier to hit certain keys and chords that way. There might be
better one-handed keyboards out there for programming, but I'm a little sour
on the whole idea.

During this time, I also did some experimentation with voice recognition. It
worked really well when coding in lisps. This was over ten years ago, and I'll
bet this would work even better now.

I also have experience with the Kinesis keyboards; I used the Freestyle—not
the Advantage featured in the article—following my recovery for about six or
seven years. Though it looks like a medical device, the ergonomics are
excellent. The Kinesis is a better typing experience by about 1000x. I have
since switched to the homemade Ergodox, but still recommend the Kinesis.

~~~
hoggle
Thank you very much for sharing that, I'll probably get a Kinesis (still would
like to at least try the Twiddler - might make sense with VR etc).

------
bdarnell
I'm a big fan of the Kinesis keyboard. I use Emacs, and I was starting to have
some RSI symptoms from the ctrl/meta key combinations when I discovered the
Kinesis. Moving the modifier keys (except for shift) to the thumbs is a huge
improvement.

The arrow key layout is actually one thing I don't like about the default
Kinesis configuration (the bottom row for the left hand is backquote,
backslash, left arrow, right arrow, and for the right hand it's up arrow, down
arrow, left bracket, right bracket). I remap these keys to put all the arrows
on the right hand (in vi order).

~~~
erlkonig
The arrows are weird and the less-than-normal function keys are suboptimal
(and I've used these keyboards long enough to run into some very rare firmware
quirks and odd choices made by the maker). However, since everything else is
so AWESOME - the hand position, being able to do CTRL+ALT with one thumb while
keeping all the fingers in normal position and being able to map the other two
mod keys to ALT, META, and then CapsLock to Hyper (for window management only,
in my case)... oooh, this keyboard rocks for most things, including coding and
gaming (assuming the game supports changing your keybindings to optimal keys -
WoW does, for example). I think I have four of them, and my girlfriend prefers
hers to normal keyboards. They've totally eliminated my incipient RSI. (rave,
rave, rave). However, I do wish they'd fix the little issues that remain in
some future board, so I don't have to keep musing over whether to buy a
Maltron to compare.

------
nhumrich
I like this article, but what about the design of keyboard/mouse integration?
There are still a lot of things you have to use a mouse for everyday. I feel
like IBM hit a home run with the trackpoint, yet somehow it never hit
mainstream. I would pay a lot of money for an ergonomic keyboard with a
trackpoint. Microsoft sculpt or 4000 with trackpoint would be awesome. Just
replace the stupid scrolly thing with a trackpoint.

------
melling
I'm surprised that there haven't been more keyboard projects on KickStarter,
which has been a boon for hardware projects.

A modern version of the DataHand would be cool.

[http://octopup.org/computer/datahand](http://octopup.org/computer/datahand)

A controller like an AlphaGrip:
[http://www.alphagrips.com/](http://www.alphagrips.com/)

~~~
gkop
Funny you should ask - there's a kickstarter launching tomorrow for a pretty
legit keyboard project: [http://www.keyboard.io](http://www.keyboard.io)

~~~
Abundnce10
Looking forward to this. Do you have any videos contrasting Keyboardio vs. the
tradition keyboard, or do I need to wait until the campaign goes live
tomorrow?

~~~
gkop
No I haven't seen videos. Honestly I'm just impressed by the level of
iteration from prototype to prototype that Jesse has blogged about extensively
for some time, leading up to
[http://blog.fsck.com/2013/12/model-00.html](http://blog.fsck.com/2013/12/model-00.html)
.

------
ninjakeyboard
I also have a Kinesis Advantage. I use colemak keyboard layout as well so I've
customized the layout a bit. Because capslock is backspace in colemak, I
changed the backspace key to control. VI sucks with colemak so I eventually
moved to using emacs. It works very well for me - your thumb is always on
control.

------
wz1000
I hit the left Control key with the edge of my palm, and use my thumb to hit
Alt. Those are the only modifier keys I use regularly, other than Shift(which
I can comfortably hit with my pinkies).

This practice along with evil-mode and Vimperator means I barely have to move
my fingers of the home row while operating my computer.

~~~
to3m
I use the knuckle of my little finger:
[http://quadruple-a.com/keys/ctrl.jpg](http://quadruple-a.com/keys/ctrl.jpg)

I've been using emacs for 9 years like that without a problem. I didn't
realise you were supposed to swap your Caps Lock and Ctrl keys, so I never
did. (And now I know you're supposed to, I just ignore it the advice. I don't
think it's especially good advice, though, as always, if it works for you,
feel free to heed it.)

------
hippich
that's funny, how every article mention using pinkie for modifier keys. I
always used thumb for that :) in fact i just tried to keep an eye how i am
using keyboard and i found i rarely using pinkie at all. This is on standard-
ish full-size laptop and 104 desktop keyboards.

------
mkagenius
I would love a keyboard that lets my hand move around freely instead of lying
awkwardly flat on the desk.

Also, I would like to code while lying on the bed, a keyboard I can wear like
gloves would be great.

If not, a keyboard in the shape of /\ lying on desk would be a much better
design.

~~~
kevincrane
Something like this matches up with your last desire.

[http://www.thehumansolution.com/kinesis-
freestyle.html](http://www.thehumansolution.com/kinesis-freestyle.html)

------
z3t4
Startup idea: We have a lot of dexterous muscles in the face. The keyboard
could probably be replaced with a face sensor. I would love to work from the
couch, only using my face.

~~~
__z
That is what Stephan Hawking does.

[http://www.hawking.org.uk/the-computer.html](http://www.hawking.org.uk/the-
computer.html)

"My main interface to the computer is through a program called EZ Keys,
written by Words Plus Inc. This provides a software keyboard on the screen. A
cursor automatically scans across this keyboard by row or by column. I can
select a character by moving my cheek to stop the cursor. My cheek movement is
detected by an infrared switch that is mounted on my spectacles. This switch
is my only interface with the computer. EZ Keys includes a word prediction
algorithm, so I usually only have to type the first couple of characters
before I can select the whole word."

~~~
z3t4
That was some quality procrastination ... I understand that he basically have
two switches, giving him a total of four combinations, witch is a bit crude.

The face have twenty muscles, Hawking probably can't move all of them, but for
a normal person that would mean around one million binary combinations. Or
10^20 combinations if each muscle contraction was measured on a scale 1-10.

Until such a product is released you could start practicing your facial
muscles by doing waves with your eyebrows and moving your ears and nose wings
etc.

------
mstechfreak2
Btw, where did you learn to touch type? I used
[http://www.typingstudy.com](http://www.typingstudy.com) but is it the best
option?

------
brudgers
Editor's remark:

    
    
      M-x replace-regexp ↩ foot pedal ↩ pedal
    

or

    
    
      M-x replace-regexp ↩ foot pedal ↩ foot switch

------
jkot
I find it better to eliminate Win key and remap Alt to Capslock.

