Good mechanical keyboard for programming?

niomosy

08 Dec 2016, 06:33

sems wrote: That's enlightening for me, as I'm also a young RoR developer with also system admin duties. Thanks for sharing your thoughts based on experience. As much as I want to get a Topre board, Realforce models seemed bulky to me, so compact layout of HHKB was a winner but now I realized that I need to be more skeptical before getting one.
There's the Plum boards that are a 75 layout as well. I'm eyeing picking one of those up in the near future. Down side is only 35 and 45g.

User avatar
drevyek

08 Dec 2016, 07:21

sems wrote: That's enlightening for me, as I'm also a young RoR developer with also system admin duties. Thanks for sharing your thoughts based on experience. As much as I want to get a Topre board, Realforce models seemed bulky to me, so compact layout of HHKB was a winner but now I realized that I need to be more skeptical before getting one.
I was a full-size or bust guy for a long while until I seriously took a try to smaller boards. Now, my main boards are a Cut-down Model M (TKL), and a 60% Alps board. The HHKB layout is totally usable, and a lot of people love it. They fiddle with a few of the key locations, but all-in-all, they do a decent job.

Additionally, a new controller board for the HHKB can be purchased to allow for full key rebinding, in case you wanted to switch things up a bit.

User avatar
Darkshado

08 Dec 2016, 07:49

I'm also a programmer, and my job entails regularly using different machines and their (run-of-the-mill, rubber-dome) keyboards. Because of that, I've refrained from switching to anything much more exotic than a TKL, QWERTY layout. (Attempt to use layers and instead run a bunch of random shortcuts? Can't risk it.)

From an ergonomics standpoint going TKL was already a significant improvement; alternating between the alphas and the mouse with a numpad in between was not doing me any good.

At work I currently use an MS Sculpt Ergo. Not a mechanical, but not a bad keyboard either; you could do much worse in terms of scissor mechanisms. I doubt I could get away with the noise of a Model M (I use one at home instead), or any clicky switches for that matter; my MX Clear board (WASD v2 TKL) should be ok there, but nothing much noisier.

User avatar
vometia
irritant

08 Dec 2016, 10:20

Halvar wrote: I envy you if you don't work in an open plan office...

I used a Model M at work for a few weeks, and my collegues were quite patient, but then I didn't want to bother them any more. Now I'm using my Novatouch.
My first experience of a Model M was in an open-plan office, but we all had them so nobody could really moan too much about anybody else's noise. It was a bit weird: a weird source of Model Ms as we were given a bunch of Dell Optiplex PCs which surprisingly used Lexmark or Unicomp keyboards (I was instantly smitten: so much better than anything else I'd used, including the SGI Indy we were also using at the time) but also weird in that I was given the job of turning the formerly individual rooms into an open-plan area, which I didn't really agree with but that was the remit. Obviously "given the job" meant "passing the job onto facilities management" since I'm hopeless at DIY, but at least I got the nicest position for my desk as part of the bargain!

User avatar
Menuhin

08 Dec 2016, 11:21

Darkshado wrote: ...
From an ergonomics standpoint going TKL was already a significant improvement; alternating between the alphas and the mouse with a numpad in between was not doing me any good.
...
I'm a user of Thinkpad, HHKB, a few 75% and some other keyboards. I don't reach for a TKL too often in recent years. And I have been patiently waiting for Lowpoly's 60% Trackpoint HHKB-style keyboard project to complete.

I don't want to look at the keyboard too often, and the only way to do it is to not leave the home row. A good Trackpoint reduces over half of my hand movements to reach for the mouse, an additional Fn+HJKL or IJKL nav cluster reduce more hand movement even. However, the macro combo keys scenarios that involve function keys are still not good for a 60% keyboard - niomosy made some good points, but I still like my HHKB, I tend to live inside Emacs and backspace at both locations are equally fine.

User avatar
Wodan
ISO Advocate

08 Dec 2016, 11:44

Pretty awesome how this thread actually turned into a vivid discussion. Go guys!

User avatar
KeepClackingAnd...
Organizer Mechanicon

08 Dec 2016, 13:18

Another programmer here:

I was very happy to use a Filco Majestouch 2 TKL (MX browns) and a Novatouch for work.

I find TKLs generally more comfortable than full sized keyboards.

This summer, I switched to a Leopold FC660M with MX blues and this quickly became my favorite layout. I don't use F-keys at all, so this layout provides all the keys I use on a regular basis. The only thing I don't like is the position of the backtick (Esc key), but I remapped this to alt+". I also remapped CapsLock to Esc on tip and Ctrl on hold.

I tried smaller layouts, but I don't think you can be productive with a MiniVan, because as a programmer you need your share of special characters all the time.

But to be honest, I think there are other, more important factors than the keyboard/switch model, when it comes down to be productive and ergonomic with your keyboard:
  • Touch typing
  • ANSI Layout
  • Ergonomic shortcuts, e.g. vim style or the ones mentioned above

User avatar
vometia
irritant

08 Dec 2016, 14:28

KeepClackingAnd... wrote: Another programmer here:
I find TKLs generally more comfortable than full sized keyboards.
Same. I eventually went down the TKL route when I got totally fed up with my mouse colliding with the end of the keyboard: I was lucky I made that decision at a time when new SSKs were still available to buy.

I doubt if I could go smaller than TKL though: I use function keys a fair bit as well as editing keys, and while I could live without them and remap my virtual desktop switching keys easily, I think a 60% might just be too big a step for me personally.

One thing I've never been able to get along with is the ANSI layout: I've never liked the horizontal return key even way back in the days of '80s microcomputing. I guess I'm just not a very good aim. :D

User avatar
KeepClackingAnd...
Organizer Mechanicon

08 Dec 2016, 14:49

vometia wrote: I think a 60% might just be too big a step for me personally.
I really wanted to try a pok3r, but it figured this would never work for me. An example is cmd+ctrl+right for selecting all text until the end of the line. I would need to replace the right arrow with fn+l so I would need to press four keys at once. Not very comfortable. So 65% is my minimum too.

User avatar
kbdfr
The Tiproman

08 Dec 2016, 15:18

I'm not a programmer myself, but the more I read here the more I wonder how virtually any keyboard has ill-placed keys or complicated combos.

Wouldn't a good solution a keyboard with 16 columns (virtually a 65% or so if I am not mistaken), but 8 rows instead of the usual 6, and where absolutely every key (including those in the alpha field, all modifiers or arrow keys, even the space bar) is easily programmable to anything you like (and this in 4 layers)?
Spoiler:
Those who know me have guessed what I mean:
Tipro MID QM-128A.jpg
Tipro MID QM-128A.jpg (177.29 KiB) Viewed 6823 times

User avatar
Scarpia

08 Dec 2016, 15:31

@kbdfr: You'd think so - but you quickly end up with a vast uniform grid of 1u keys which you can't reasonably feel your way around without looking. Without looking down, I dare you to quickly hit the key two rows above the F8, then Esc, then the key 1 row above F12.

Basically, there's a reason why classic keyboards separated the function key row and divided it into groups of four; the same reason why the nav cluster and arrow keys were designed to be separate. They were creating intuitive, fingertip-scannable shapes because the ocean-of-identical-keys just isn't efficient. The homing bars serve the same purpose in the alpha cluster, of course.

With this in mind, I can't recommend the recently-popular 75% layouts (or any extension of them) at all, because they choose y-axis compactness (and ease-of-case-building) at the expense of efficient key cluster spacing. It's form over function, and it's bad.

User avatar
Wodan
ISO Advocate

08 Dec 2016, 15:33

What's charming about combos is the ability to trigger keys from within the typing-grip that would otherwise require you to move you hands away from the homing position. I am starting to find it complicated to "reach" for the F-row and the cursor keys (home, end, pgupdn, arrows) because it puts my hands completely out of typing position. You're showing a 75% layout which is already a nice compromise but still puts some keys a little out of reach. Even with 75% layout boards I have to really reach for the F-row.

User avatar
KeepClackingAnd...
Organizer Mechanicon

08 Dec 2016, 15:42

This summer, I switched to Spacemacs as my editor of choice (basically emacs+evil mode), mainly, because I wanted to work more ergonomic.

Lots of macro keys means they are hard to reach and they are hard to combine. Combos that need you to press multiple keys at once can be hard/slow to perform too.

Spacemacs has a different approach, you can call even complicated functions not by combining keypresses, but by pressing keys in a special order after one another.

Example: Instead of ctrl+o for "Open File" it is Space, f, f. Or instead of ctrl+s it is Space, f, s. You can do lots of stuff without ever leaving the home row.

This is not a new concept, but I like the way Spacemacs does it the most.

User avatar
Scarpia

08 Dec 2016, 15:45

Sounds like Spacemacs is Emacs for vim people. In other words, a bastard, a half-breed. You should be ashamed of yourself :lol:

User avatar
KeepClackingAnd...
Organizer Mechanicon

08 Dec 2016, 15:49

Scarpia wrote: Sounds like Spacemacs is Emacs for vim people. In other words, a bastard, a half-breed. You should be ashamed of yourself :lol:
It's the best of both worlds. :P A new breed ready to take over the world 8-)

User avatar
Laser
emacs -nw

08 Dec 2016, 15:53

I use Emacs + Evil-mode directly :D

User avatar
Scarpia

08 Dec 2016, 15:55

Okay, you win. They have a cool website. That's all I ever wanted.

User avatar
Laser
emacs -nw

08 Dec 2016, 15:57

Eh, I'm kidding ... whatever floats our boats :)

User avatar
vometia
irritant

08 Dec 2016, 16:07

I'm scared. I could never get the hang of emacs (obviously "escape-meta-alt-control-shift") in spite of attempts to get me to use it since 1986. Admittedly I gave up more than 10 years ago (in spite of occasional further attempts to railroad me, such as GNU man pages saying "use GNU info, you'll love it. *snigger*") but it's something that my fingers could never find a natural thing to learn for some reason. Whereas vi's "line noise" style commands seem to appeal much more: in fact I preferentially used ed for a good few years (or a bad few, depending on your perspective) because it was always there and it did the stuff I wanted to do in a fairly straightforward manner.

User avatar
Laser
emacs -nw

08 Dec 2016, 16:58

Frankly, if you are happy with what Vi(m) and its plugins offer, and you don't need to use Vimscript extensively, Vim is perfectly alright. I only started to look at Emacs as an editor choice because of its awesome Org-mode (for note taking, agenda etc.) and because I got a little fed up with Vimscript - and learning emacs lisp is not only fun, but also a somewhat illuminating experience - because (looking at lisp in general) I learned about the source of some programming concepts (lambda, closures, functional programming) that were also mentioned/used/implemented in other languages (C++) and which were for me, at that time, quite unclear.

User avatar
Menuhin

08 Dec 2016, 17:30

I smell an editor war coming, with Laser avoiding it and getting the best of both worlds.
I use Emacs in Linux and Windows and in the past I used Aquamacs in OSX too, and I'm trying to go as 'vanilla' as possible. It's good to use Vi/Vim from time to time, it's light and small and it's everywhere. Emacs is huge, and it's not just an editor as people want to "live inside it" to do many sorts of tasks. If one needs to deal with Lisp or some other native packages related to Lisp or Emacs to do many tasks games etc, go with Emacs; otherwise, go with Vim to get a powerful editor with some help from Vimscript, edit and then quit.

Here are some observations of touch-typing and Emacs usage.
At home, I do 'touch-type" in kind of a hardcore way, almost like covering your hands with a pieces of cloth - I put the keyboard in a drawer and stick my hands inside to type, peeking is not convenient, and most caps I use are blanks anyway. After doing this for a while, I realized that how often my peripheral vision aided my typing even when I think I'm "touch-typing", e.g. on '-', '=' and all those keys on the top right corner beyond 'P' and '0' are difficult to be reached with high speed and accuracy, and I found myself peeked at the F-keys every time before I pressed one of them. That is, 'touch-typing' is difficult for keys beyond 2 positions (column and row) of reach from home row positions, unless they're at the top corners. It is quite all right to touch-type on a 60% in pitch dark, but for larger keyboards e.g. with F-keys, it is only possible to hit those keys accurately with the help of key stickers or caps with various texture or shapes.
With my use of HHKB to ease my tendency to have the 'Emacs-pinky', I realize how natural it is to use the Caps Lock as a control key, and that the keys at the very corners on the bottom rows are not suitable for either the thumbs or the pinkies to press, given if you don't want to leave the home row too far. When I have to leave the home row (I mean not going to take a leak...), I tend to have my index fingers still remain touching the home keys, i.e. F and J keys with 'homing bars'. So, the space bar should be shorter (<6u) for better placements of thumb keys, and the Ctrl keys shouldn't be at the corners.

However, I'm still an advocate of 75% keyboard layout.
Spoiler:
Image
Image
It has almost all keys of the TKL. The arrow clusters is at the corner and can be reached easily. The unclustered F-key problems can be solved by having the higher proper F-key profile and four 0.25u blank spaces so that the top row has 15 keys only instead of the usual 16 keys. So far only the PLUM 'Nano-75' addressed both of these but it's not a real 84 keys 75%.
Spoiler:
Image
Image

User avatar
Scarpia

08 Dec 2016, 20:28

@Menuhin: Nice - that actually works, with the 0.25u clustering and a significant height difference on the function row, a 75% layout could certainly work -- but unfortunately that doesn't seem to be the way most people are building them.

(I actually think I might revise my 'ideal layout' now to include a function row like that Plum Nano75 - thanks for posting that pic!)

niomosy

09 Dec 2016, 02:40

I think the 60% and such users probably keep to home row more. I do not. I tend to float and, given my work, shift my hands to more comfortable positions for typing certain commands at the command line. Movement for me is not an ergonomic concern as much as it is for others. Odd combinations are more a concern for me so a removal of the function row is less painful for some but more painful for me.

As noted, this is where a 75% layout is really fantastic. It's a 60% with a bit more functionality yet doesn't add too much more in terms of size. Personally, something like a VE.A layout is ideal as it gives some bonus keys on the left side that I wouldn't mind making use of for a few things.

As for editors, I've really never delved that heavily into Emacs as vi is standard across the versions of UNIX and Linux I support. To be honest, at times I will simply unalias vim so I can run stock vi without all the color coding. If I really needto work on something, I'd rather be in Notepad++ with a good color scheme and set with UNIX returns. It's how I was doing lots of Puppet code before we were told to use *cringe* Eclipse. Fortunately, Puppetlabs told us that Eclipse for Puppet is dead and it's time to move on.

davorb

15 Dec 2016, 02:18

I spend most of my time in Emacs and use a Pok3r with that. I used to use a Unicomp/Model M, and liked that as well.

I really like the 60% form factor (but it's not for everyone, and I had my doubts before getting it), but the Unicomp just feels so much better to type on than anything out there. I would recommend both.

User avatar
vvp

15 Dec 2016, 10:38

I do software development. If you like key wells then use Kinesis Advantage 1 or 2. If you like flat keyboard then use Ergodox preferably with chrisandreae's firmware.
All the modifier keys are easily available on thumbs and you can create macros or remap keys easily to get quick and comfortable access to all the crazy shortcuts you may be using.

Dr Joe NJ.

27 Feb 2017, 02:34

Mostly it comes down to personal preference and budget. A mechanical keyboard is going to be your best bet for programming as it cuts down on typos and bugs.

You can check out this guide as well, it has a video which is helpful. http://www.programmerfriendly.com/best- ... ogramming/

__red__

27 Feb 2017, 05:04

Halvar wrote: I envy you if you don't work in an open plan office...

I used a Model M at work for a few weeks, and my collegues were quite patient, but then I didn't want to bother them any more. Now I'm using my Novatouch.
I solved my Model F / Model M open plan office issue by loaning Model Ms to my five surrounding cubemates.

__red__

27 Feb 2017, 07:23

I'm a security guy and a programmer.

My first decade was on the same UK IBM Model M. Then I moved to the US, adjusted to the new configuration / layout and used a series of Model M and Model Fs since. I've never routinely used a rubber-dome keyboard. I've never succeeded in using a Cherry MX keyboard for more than a few minutes.

I am definitely on the tactile side of the spectrum and if you use a modal editor like vi or emacs, you should be too.

Since we're talking workflow, I'm a primary user or vi(m) and tmux. I live in shells.

My primary keyboards are an IBM Model F-122 Battleship and an IBM 4704 107key. I use both, depending on the systems I'm working on (they're around 3ft away from each other).

They're both terminal keyboards which, for the uninitiated means that that have both function keys (F1-F10) and PF keys (PF1-PF24). The PF keys are in the place you'd expect function keys to be on a PC keyboard except it has two rows of 12 Function keys instead of one.

The "interesting" part for me is the F1-F10 block which is on the left hand side of the keyboard which I use for hotkeys and macros to reduce wrist-twist and increase speed.

My escape key is the top left of that block (ie, F1 position). My "Fn" key is next to it (F2 position). That's mainly for audio controls and, my personal favorite... use the vi keys (hjkl) as a mouse(!) (n = leftclick, m = middleclick, , = rightclick).

I got some gnarly wrist damage in my left wrist from an incident I don't want to discuss. This makes ^A (tmux/screen meta) a painful twist so I have dedicated keys for it as follows:
F5 -> ^A
F6 -> ^Ac tmux create
F7 -> ^Ap tmux previous
F8 -> ^An tmux next
F9 -> Virtual Desktop move Left
F10 -> Virtual Desktop move Right.

tmk firmware is awesome. Just saying.

My advice if you want new with a touch of adventure? Get thee a Unicomp M-122 and throw a converter on it so you can map all those tasty keys to do your bidding... 122 keys is a lot of keys... ;-)

Post Reply

Return to “Keyboards”