We start at Keyboard Layout Editor (KLE) of course. I initially set out to design an optimal layout for programmers, which was rather ambitious. The problem is that different programming environments have different needs. People using EMACS have different needs to people using Vim, who have different needs to people using a full-blown GUI for coding. So one-size-fits-all will not work.
But I didn't know that when I started....
What I ended up with, after a long process which is detailed on my blog, is the Programmers Keyboard which is currently a pre-defined template in KLE.
Programmers Keyboard initial release
I then developed it further and added bells and whistles, ending up with V2 which is what I thought I would build.
Programmers Keyboard final release
The Alpha key layout is a slightly modified version of Workman-P, meant to be programmer-friendly. I did what I thought was clever, and put the brackets down the middle, had all sorts of possibly-useful currency, Greek and punctuation symbols, one-touch copy/paste/cut/undo/redo/select-all, provision for dozenal/duodecimal support, Pomodoro timer, dual Nav clusters (idea being that lefties could swap them around), and a cool wooden case. In that respect I was aiming for something like what keyboard.io is doing.
And then Xah Lee came along to my blog and suggested, amongst other things, that maybe Workman wasn't the best layout....
Since Xah knows much more than me, that took me to the next phase of this voyage... looking for the best layout for English and programming. I restarted what I had been doing previously (searching for best layout, which led to Workman-P), and found various people had tackled the problem in a more scientific way. I eventually ended up at Patrick's Keyboard Layout Analyzer (KLA), where I spent many hours testing and improving layouts.
Somewhere along the way I met Den and we started trading notes on layouts. This lead via Arensito and ideas from Schizo to the ErgoLinear layout form factor, shown below, which produced the best scores in KLA. We had to modify KLA to accommodate this. In fact there are now three variants of this (one from me and two from Den).
|ANSI 104, QWERTY|
|ErgoDox, MTGAP Thumbshift|
There are several unusual things about this layout:
These are the scores as per Den's scoring on KLE. Den's scoring differs from the original in that vertical distance is also counted, as opposed to only horizontal. So it's more accurate. These scores are from the tests I used to compare layouts. Apart from the very technical digit and dates tests, this layout is far above others. Note: lower score is better, we are measuring Effort.
|3||BEAKL 4 Mod Ian AltGr 3||ANSI||123.7||100.5||118.3||156.8|
|4||MTGap TS ErgoLinear 2||Ergo||124.8||104.2||122.1||151.2|
|6||RSTHD ErgoLinear 2||Ergo||126.4||97.2||124.8||162.9|
|7||Colemak TS ErgoLinear 2||Ergo||126.7||101.3||119.5||160.1|
|16||Ergodox MTGAP Thumbshift||Ergo||159.2||105.1||141.4||231.2|
|19||Ergodox Colemak Thumbshift||Ergo||163.4||104.1||141.1||243.3|
|20||Ian R2 p||ANSI||163.8||101.8||136.3||255.9|
|21||Kinesis Advantage Svorak-r||Ergo||172.2||114.8||156.2||247.8|
|22||Maltron 90 Ergodox||Ergo||175.5||101.3||180.9||265.9|
|24||Kinesis Advantage Colemak||Ergo||182.5||108.5||183.4||274.1|
|25||Right Pinky's Friend||ANSI||187.2||119.2||198.7||275.4|
|27||Ergodox QWERTY Thumbshift||Ergo||197.8||152.2||172.6||261.4|
|28||Dvorak Simplified (ie Standard)||ANSI||198.9||124.2||211.1||295.8|
|29||Aus der Neo-Welt||ANSI||199.3||116.2||186.6||315.1|
|38||Burroughs Bower (typewriter)||ANSI||203.8||118.8||200.8||319.3|
|44||Kinesis Advantage Qwerty||Ergo||207.5||154.4||207.2||273.4|
|55||BvoFRak EN V0.5||ANSI||234.7||111.7||185.3||415.4|
|57||TNWMLC (Worst CarpalX)||ANSI||247.1||191||238.7||325.2|
Note: you can find and play with these layouts on my fork of Den's fork of Patrick's KLA here: http://kla.keyboard-design.com
Or you can compare results here: keyboard-design.com/best-layouts.html.
For the purposes of actually making the keyboard, I added back the numpad and navigation, giving us this final mockup. (click to enlarge)
The modifier keys use symbols rather than words. The design is borrowed from and inspired by (for the new keys) Mito's Bauhaus Icons design. I don't know the copyright status on those ideas.
This is actually the 6.5 variant not the 6.4... only difference is the : and ; are swapped around. I ordered the keycaps while I was still testing, and it looked like 6.5 would beat 6.4. Turns out it didn't.
The numpad layout is also unconventional, based on most frequently used digits. It also has other commonly-needed punctuation and Tab keys in the cluster. In truth I still want to optimize the numpad layout, so the final version might differ.
If, like me, you're doing something non-standard, you'll need a way of printing the keycaps, which we'll get to in the next section. But part of the design is picking the font to be used.
The starting point is usually Signature Plastic's famous Gorton Modified, which looks like this:
Gorton Modified (Carbon colour scheme)
However SP insists that it does not exist in an electronic form, so we look for alternatives... In general, we want a sans serif font, because keys are not generally flat and/or smooth, and the printing processes have limitations, which means they can't do the fine serifs so well.
The key (pardon the pun) points (ditto) of Gorton Modified are:
For KLE, Ian Prest actually bought Engravers Gothic font, which is similar to Gorton Modified but not identical.
It has small caps rather than lower case, and looks like this:
For this keyboard, it was actually more difficult than expected to find a replacement font, mainly because I have marked the keys with the lower case letters as well as capitals. I found lots of fonts, but the similarity between I (upper-i) and l (lower-L) was too much. In general, I was looking for:
So I stared at a lot of fonts. Went through the entire sans serif selection on Google Fonts, as well as whatever I had on my system, as well as programming fonts and other places with free and not free fonts to download.
One suggested replacement is the commercial font Gotham Rounded medium, which looks like this: (click image for larger view)
Gotham Rounded medium
There is a font which goes by the name Armani, which is available to install on Android phones via the iFont package. However I was unable to track it down online, either by name or characteristics search or even image search. So I don't know what it actually is... the metadata in the file have names from well-known foundries but I can't find it on their sites. It looks like this, which is very close to Gorton apart from the upper-i which has a top and bottom: (click image for larger view)
Which brings us to the free options. One possibility is Source Sans Pro (available for example from Google Fonts), and which looks like this:
Source Sans Pro
It does differentiate between upper-i and lower-L, but the tilde is a little flat, and it lacks some of the punctuation and Greek glyhs, which means I ended up with Hack.
Hack is an open source typeface designed for programmers. It looks like this:
All the possibly-confusing characters are clearly distinguished. The ,.;: are good sizes. Apart from those characters, Hack has good coverage of the other glyphs I need. Yes the zero is controversial, and the typographic quotes could be prettier, but all things considered, I think it looks okay. It's not Gorton Modified but it will do.
Other options to consider, if you only need conventional characters:
I put together a comparative view of the most similar fonts to Gorton Modified that I could find, and scored them by subtracting the "not very similar" glyphs. The glyphs highlighted are because:
So the top fonts after that exercise are
For your viewing pleasure, here are ANSI104 mockups. Click image for widescreen view.
But wait! There's more....
If you want something like Gorton Modified, but perhaps a bit more modern and/or stylish, take a look at Quicksand (free) or Atami (free)
Or how about something more modern with a techy feel? Use Prime (free)
Next: Components and tools.