

A Real Keyboard for Programmers? - kasa
http://www.naildrivin5.com/blog/2013/08/29/a-real-keyboard-for-programmers.html

======
bhauer
I _agree_ with what I take as the underlying premise of this blog entry: if
you're going to call something a "keyboard for programmers" it would be nice
if you made concerted effort to improve matters for programmers, moreso than
just tactile ergonomics.

However, I have mixed feelings with several of the author's specific points.

1\. In general, I think a keyboard should _retain_ all legacy keys, including
Scroll Lock and Printscreen because they have acquired specific meaning
through their many years. If a new keyboard were paired with a new operating
system, then I'd be comfortable--even happy--with disposing of legacy. As it
is though, Printscreen is the easiest way to grab a screen-capture or window-
capture.

2\. The CODE keyboard may be marketed as designed for programmers, but it
seems to also carry over a certain "gamer programmer" target. Hence, the PS/2
adapter (I believe some harder-core gamers profess to PS/2 being faster).

3\. Space is indeed very important. I am not sure if the author is just
pointing that out matter-of-factly or intends it as criticism. I assume the
prior.

4\. Very much agree that Caps Lock should be diminished in importance. It
should be located on some fringe alongside Scroll Lock. Many of my colleagues
and I simply disable the key outright.

5\. Also agree that backslash should be diminished in importance. However, I
personally would like a "programmers keyboard" that made all variations of
brackets < > ( ) [ ] { } / \ available (a) without modifier keys of any sort
and (b) in side-by-side pairings. It bothers me that / and \ are not side-by-
side on most/all keyboards.

6\. Strongly disagree that Page Up (and presumably Page Down, although it's
not cited by name) is a dumb key. I press Page Up, Page Down, Home, and End
hundreds of times per day.

7\. I don't actually like that function keys are often trimmed to half-height
even on desktop keyboards. That is fine for a laptop. But on my desktop, I
have the room for an additional row of full-height keys, thank you. In
general, desktop keyboards that are built to laptop aesthetics are dubious to
me.

8\. Strongly disagree that arrow keys lack importance. I smell a vimmer. Oh,
sure enough, he mentions the ADM3A. Please, I beg of you, vimmers: don't
pretend to speak for all programmers.

9\. Strongly agree with the premise that a programmer's keyboard should avoid
use of modifier keys for symbols. I have often ranted that programming
language designers should avoid arrow operators -> and => in their syntax
because of the shift transition required to type an arrow on most keyboards.

I like the premise of this blog entry a great deal! Please, let's see some
actual innovation in programmer's keyboards. But apparently, we should have
one style for vimmers and one for other programmers. :)

~~~
jfb
I think there should be a 100% remappable keyboard. I never use any of the
legacy key functions, but the _switches_ are precious on a fixed piece of
hardware. It is maddening to me that there are dead keys on my keyboards;
having a completely soft layout would allow me to customize things exactly the
way I want.

~~~
jerf
"I think there should be a 100% remappable keyboard."

You have one. It's the one you typed that post on. A keyboard just emits
numbers, it's up to the computer OS to determine what to do with it.

Exactly how to customize your keyboard is OS-specific, but it can be done in
all the major ones, as far as I know. (Can't commit to Windows 8. Windows 7
did require some unpleasant registry hacking for changing caps lock.)

If you want control over what your keyboard does, take it.

Incidentally, the big key to trying things out is that if you remap a new
function onto Caps Lock and you want to see if it works for you, be sure to
_demap_ the other copy of the key. If you make Caps Lock a _new_ Backspace,
you'll never use it. If you make Caps Lock a new Backspace, and then demap the
current one, you'll literally be adjusted in a matter of minutes, and if you
decide you don't like it, returning is also a matter of minutes.

Once you work out what you need to do for your OS, keyboard layout
experimentation is far more rapid than people realize, I think.

~~~
numo16
On windows I use Autohotkey [1] to remap keys (capslock to backspace, qwerty
to colemak, etc...), no registry hacks required. You just have to remember to
run the script on startup.

[1]: [http://www.autohotkey.com/](http://www.autohotkey.com/)

~~~
Marwy
Some time ago I used it to quickly change my layout from qwerty to colemak,
and often it couldn't keep up with my speed (and I'm an average typist: ca. 65
WPM), which resulted in wrong order of characters. I tried both interpreted
and compiled version - no difference. It wasn't a beefy machine, though, so
with your i5s and 8 gigs it may work well ;-).

------
wesley
This is the real, modular keyboard for programmers/hackers:

[http://acidfire.ca/keyboard/BDY14295.jpg](http://acidfire.ca/keyboard/BDY14295.jpg)

(It's a modular kit, the image above is just one of the configurations, the
center part is an addon).

You can also have multiple layers, so you could create a dedicated programming
layer. All firmware will be open source.

It's going to go up on kickstarter soon (when Canada launches in september).

More info here:
[http://geekhack.org/index.php?topic=44940.0](http://geekhack.org/index.php?topic=44940.0)

Some more images (the thread is pretty lengthy):

[http://acidfire.ca/keyboard/BDY14209.jpg](http://acidfire.ca/keyboard/BDY14209.jpg)
[http://acidfire.ca/keyboard/BDY14230.jpg](http://acidfire.ca/keyboard/BDY14230.jpg)
[http://acidfire.ca/keyboard/BDY14300.jpg](http://acidfire.ca/keyboard/BDY14300.jpg)

Over the top:
[http://acidfire.ca/keyboard/BDY14284.jpg](http://acidfire.ca/keyboard/BDY14284.jpg)

Later on more modules will be sold, such as a trackball module that you could
place in the center and so on.

There's also going to be a portable version:

[http://acidfire.ca/keyboard/BDY14438.jpg](http://acidfire.ca/keyboard/BDY14438.jpg)
[http://acidfire.ca/keyboard/BDY14440.jpg](http://acidfire.ca/keyboard/BDY14440.jpg)
(variation)

~~~
_random_
Looks cool, would consider for under $200.

------
thedufer
It sounds like most people didn't follow the link and read about the actual
keyboard. Things that directly contradict complaints in this article:

\- There is a hardware switch to remap caps lock to CTRL \- There is a
hardware switch to remap scroll lock to windows lock (temporarily disable the
windows key) \- The weird context menu button can be hardware-remapped to a Fn
key that turns the pageup/dn set of 6 keys into media keys (and Pause into
what appears to be Mute)

Other neat things: \- Hardware switches to swap between QWERTY, Dvorak, and
Colemak, as well as to switch the alt/ctrl keys (supposedly useful when used
on a mac?) \- Backlit \- 6-key rollover (n-key over PS/2)

Also: a PS/2 keyboard is required to get into BIOS on many (even modern)
motherboards. USB usually doesn't register until too late. I'm not really sure
why a PS/2 keyboard (or adapter, at least) isn't considered a hard requirement
for a hacker's keyboard.

The bigger issue is that there's a steep learning curve to moving any of they
keys that someone uses. You can't just arbitrarily move things and assume that
it'll work for more than a couple dozen people.

------
walls
> And what is that “Print Screen” key doing there?!

> Stupid keys like Page Up, Scroll Lock, and Insert are gone.

Surely I'm not the only person regularly using the "page" and "print screen"
buttons?

~~~
Avshalom
I don't use print screen much but I page the shit out things.

~~~
tlarkworthy
print screen takes a screenshot (windows and linux, + ALT for current window
only). I have met lots of programmers who didn't know it, and bless me when
they discover it.

I am on the edge of getting RSA and have replaced all my keyboards with
ergonomic ones. This CODE keyboard is of no use to me.

------
Pxtl
Aaaaand it's dead.

The only features I want in a "programming" keyboard that make it different
from a normal, vanilla, cheap commodity keyboard:

1) An underscore key in between the space bar and right "ALT".

2) Add the numbers A through F above the numpad.

3) Move the caps-lock key the heck away from its current prime real-estate
above the shift-key.

If you wanted to be really fancy, a built-in macro recording/playback facility
could be handy if I'm working with something exceptionally primitive and need
to automate something.

------
kylec
It sounds like the author is describing the Happy Hacking keyboard:

[http://elitekeyboards.com/products.php?pid=pdkb400b](http://elitekeyboards.com/products.php?pid=pdkb400b)

Control where the caps lock key is, escape moved down, and elimination of all
unnecessary (and some debatably necessary) keys. It actually looks very close
in layout to the diagram in the article of the keyboard that vi was developed
on.

~~~
9999
I have an HHK Pro 2. The Topre keys are great, but they are considerably
different than the Cherry MX keys that most mechanical keyboards use (and
they're more expensive). The layout is absolutely fantastic. It led me to
remap the control key to the capslock key on all of my laptops as well. If
anyone is looking to buy an HHK, I would highly recommend buying it from
amazon jp to avoid the high markup. Even if you use a third party shipper
(like Tenso), you'll still save over the prices that elitekeyboards charges.

------
terhechte
Microsoft has a new ergonomic keyboard coming out, with chiclet keys like the
Apple Keyboards / Laptops:
[http://xahlee.info/kbd/Microsoft_sculpt_ergonomic_keyboard.h...](http://xahlee.info/kbd/Microsoft_sculpt_ergonomic_keyboard.html)

I think I'm going to order one of these once they come out. It looks gorgeous,
and I'm coding so much these days, I think it would be wise to buy one of
these.

It also has a detachable number block, which I find great. I need these for
Blender 3D work, but apart from that never use them. So I can just stow them
away.

It also seems to have two space keys. I wonder if it is possible to detect
which one is the left or right one. Or remap them. Then I could remap one of
them as ESC for vim, for example. That'd be rad.

~~~
com2kid
> It also has a detachable number block, which I find great. I need these for
> Blender 3D work, but apart from that never use them. So I can just stow them
> away.

The detachable number block is amazing for ergonomics, it moves your mouse
closer to your keyboard, reducing how far out your arm stretches.

The keyboard itself is chiclet, which I disprove of. :( I love my key presses
to be deep and satisfying!

> It also seems to have two space keys. I wonder if it is possible to detect
> which one is the left or right one. Or remap them. Then I could remap one of
> them as ESC for vim, for example. That'd be rad.

I beta tested the keyboard (woot! I got in because a designer on it heard me
complaining about keyboards to a friend!), and funny enough internally the
keyboard does know that there is a difference, and from what I understand
talking to someone on the team, they originally allowed for some limited
remapping abilities of it. From what I gathered the feature confused people
and got cut at least in the version of firmware I was handed for it. I am not
sure what the situations will be like on release of course!

As far as the computer is concerned though, it isn't like with shift where
keymaps defined for two of them (AFAIK at least), to make "space" work
properly I imagine the keyboard has to report either key as the scancode for
"space".

IIRC they allowed remapping one of the keys to delete or backspace or
something like that, it was actually pretty useful for coding. ESC would also
be nice. :)

> I think I'm going to order one of these once they come out. It looks
> gorgeous, and I'm coding so much these days, I think it would be wise to buy
> one of these.

It does look awesome, and it is _amazingly_ comfortable.

------
RazerM
What's wrong with caps lock? Only when using an editor is there an easy
shortcut to capitalise multiple characters at a time.

Typing a word in caps using the shift keys is uncomfortable due to alternating
which hand presses shift.

~~~
jack-r-abbit
I thought the same thing. I do wish it was moved though. I probably hit it on
accident a few times a week when I was trying to get Tab or Shift.

~~~
Kluny
I've got mine mapped to f6 right now. My capslock is an extra ctrl button, but
I might make it esc pretty soon.

------
jasonkester
Things I learned from reading this blog post: There are people who use their
_thumbs_ to press Alt (or cmd on a mac). That would never have occurred to me
(either to do, or that anybody had ever done so).

I imagine that explains why keyboard manufacturers are so happy to put garbage
keys I don't care about right next to my Shift, Ctrl and Alt keys. Personally,
my ideal keyboard would have those expanded and the windows and fn keys
removed off to the right side of the spacebar (or to the underside of the
computer for the amount of use they actually get).

~~~
CatMtKing
:O What finger do you use instead? The pinky?

~~~
jasonkester
All the keys in the lower left corner get the pinky, unless the pinky is
already holding the shift or ctrl (in which case, hey! I hit it with my thumb!
Who knew...) The ones in the lower right can go their entire lives unpressed.

------
__mharrison__
I've blogged a bit about what I want in a keyboard [0]. What I'm currently
missing is chorded keys for symbols. (ie having them on the home row with a
modifier key). I think that would actually help programmers. The problem is is
that my Python specific symbols layer is going go be less than optimal for a
C/Java/... programmer.

0-[http://hairysun.com/blog/2013/04/02/oh-ergonomic-
keyboard/](http://hairysun.com/blog/2013/04/02/oh-ergonomic-keyboard/)

------
lawn
For a self-built, completely programmable keyboard you may feast your eyes on
the GH60:
[http://geekhack.org/index.php?topic=41464](http://geekhack.org/index.php?topic=41464).
It's small, without function keys or numpad, and it comes with different
layouts. You're expected to source your own switches and a case.

Currently the group buy doesn't accept any new orders, but if you're
interested some boards should be sold peer-to-peer.

------
_random_
Can imagine future posts: tea better than coffee, blue better than red etc.
That Apple keyboard is rubbish for devs. Arrow keys are perfect as is. Pg
Up/Down are useful etc.

------
vizzah
"Stupid keys" PgUp/PgDn??! I wonder how people navigate and read through their
source code if not using PageUp/Down. Scrolling with mouse? When one key press
can bring you _exactly_ one page forward or backwards. Irreplacable keys for
me. I can't code properly on a keyboard which doesn't have these keys under my
third and middle finger (making short jumps from the set of 4 arrow keys).

~~~
danneu
Ctrl-D/U in Vim.

------
geon
The site was down for me. Here is the google cache mirror:

[http://webcache.googleusercontent.com/search?q=cache:http://...](http://webcache.googleusercontent.com/search?q=cache:http://www.naildrivin5.com/blog/2013/08/29/a-real-
keyboard-for-programmers.html&strip=1)

------
Coincoin
Am I the only one who still uses Shift-Delete and Shift-Insert to cut and
paste? I swear when I tell my fellow programmers, they look at me as if I'm
from another planet.

~~~
Pxtl
I honestly had no idea that shift-delete was cut. Either way, "delete" is the
key I usually rage about when I'm using a cramped laptop keyboard and can't
find it. No, backspace is _not_ an adequate substitute.

------
kvinnako
Any reviews from the actual users who used this CODE keyboard. In comparision
to other high end 150$ keyboards, would you recommend this one?

~~~
seferphier
It is just a normal mechanical keyboard. any one who never tried a mechanical
keyboard would love it.

~~~
Filligree
As opposed to..?

Are you implying that someone who has wouldn't like it?

~~~
seferphier
na. i personally haven't tried the build quality of WASD, but I heard it is
really solid.

should be a pretty good keyboard for 150. there are others out there for the
same price if it is sold out.

~~~
Filligree
It is. :P

There are a couple others mentioned in the discussion, but which would you
suggest?

------
newman314
I actually want a KBtalking pro keyboard. The only feature missing for me is
the backlit keys.

------
sluu99
most i agree, except "Stupid keys like Page Up, Scroll Lock, and Insert are
gone. They have no place in modern computing."

Having the default 2 x 3 insert home pgup; delete end pgdown is my #1
requirement to any keyboard.

------
dnautics
as for snake case's underscore, and css' dash, dvorak layout has that in a
very nice place.

