My ageing Microsoft Natural Keyboard (original design) was not happy after I spilt some water on it. It insisted on typing unexpected letters, so I swapped it out for the 4000 version, which I don’t particularly like.
I then commenced a search for a replacement keyboard, and looked at every model available on-line. I learnt two things: all the current designs suck, and I really should switch to a mechanical keyboard. My thumbs have been hurting for years, and I found posts on-line blaming the space-bar on MS Naturals for causing that.
So given that there was nothing suitable available, I decided to make my own, having stumbled across people who do that as a hobby etc. Much Googling later, I discovered Keyboard Layout Editor and set to work on my own layout, the Programmer’s KeyBoard, aka PKB.
I had a few ideas which I had gathered over the years, and well as some dislikes about current keyboards, and decided to address them. I have also experimented with various keymap layouts (mainly the fully optimised one from CarpalX) but there were some things about it that I didn’t like.
Here’s the layout:
Then I discovered the Workman layout, in particular the Workman-P layout for programmers:
The main difference between the -P variant and normal Workman is that the numerals and the symbols are switched, because we tend to need those symbols more than the digits. The Workman layout puts the most common letters in English in easily-accessible places for the fingers.
I also liked an idea that Maltron had, of putting the number block (aka TenKeys) in the middle. Also the idea of using the thumb more. Several other designs have copied this.
This idea also surfaced in Xah’s layout, v5. He also included dedicated cut/copy/paste buttons which I thought was a good idea.
As a programmer, we use the brackets a lot, as well as : and ;. I also tend to hit the , when I mean the . and vice versa. I needed to fix that.
So I started in the Keyboard Layout editor with the default ErgoDox layout, because I wanted the angled letters. Added in the TenKeys, and brackets, and 6-key block.
Add some colour and legacy 3-key block.
Tilt the letter blocks. Must aim for ergonomics :-). Also add left-hand Nav keys.
Move Space and Enter, switch left-hand Nav keys to Top/Bottom/Start/End. These keys and the right-hand nav keys could be switched by the user. Move legacy 3-key back to traditional place. Moved the I key down a row to move the ;, : and ?. This is the only major change from Workman-P as far as the letters go. Re-arranged math keys under TenKeys. Discovered I had forgotten the ‘ ” key so added it.
Didn’t like the staggered letter keys, so normalised them.
Wasn’t happy with the Space/Enter layout so re-arranged it.
Move the ‘ ” keys down to a prettier, easier-to-access spot. This also makes the alpha layout easier to redo in standard QWERTY or others of your choice.
Discovered that Signature Plastics does not have 3-space blank keys, so resized the space bars to 2.75. It possibly looks better. Decided there were too many words on the keys and started replacing them with symbols. I chose the yin-yang as a neutral OS key.
Replaced most of the other text labels with symbols. Several are from the FontAwesome collection.The lock symbol should be closed but that character refuses to copy on my PC.
So this is where I am now. Trying to source switches, looking for Cherry MX brown but can’t find any. Also trying Kailh. I’ll get the keycaps from Signature Plastics. Since this is my first keyboard, I’m going with the DSA generic profile rather than the row-specific DCS keys. Unfortunately they don’t have all the colours in the above design so I’m going to have to switch a few colours.
In the next post I’ll point out what I think the advantages of this layout are, compared to other layouts. It’s not a one-size-fits-all design, and gamers will probably hate it, but I’m not a gamer, I’m a programmer … 🙂