Archive for January, 2013

h1

Keyboard layouts

2013-01-28

These days, my job finds me writing a lot of PHP code for a business-oriented web portal. This implies quite a few dollar signs, along with parenthesis and quotes. To make my life a little bit easier, realizing the number of times I’m forced to hold shift while typing one of these symbols, I decided to create a keyboard layout that doesn’t requiring shift-holding for the majority of activities.

Unshifted register

`!"#$%^&*()-=
 qwertyuiop[]\
 asdfghjkl;'
  zxcvbnm,./

Shifted register

~1234567890_+
 QWERTYUIOP{}|
 ASDFGHJKL:@
  ZXCVBNM<>?

The at-sign and double-quote have been swapped so that I don’t have to hold shift for double-quote (which I type very often) but I do have to hold it for at-sign (which doesn’t come up so often).

Some international layouts employ a similar philosophy (see: Slovak layout), requiring the top row to be shifted in order to type a number. While it could get annoying having to hold shift to enter digits all the time, I have two other options for numeric entry. My first option is to engage caps-lock and use the top row as numerals. My second option is to use the numeric keypad.

Caps-lock register

\1234567890-=
 QWERTYUIOP<>"
 ASDFGHJKL_'
  ZXCVBNM,./

The caps-lock register only applies when SHIFT is not held down. With additional work I could probably split the register in two so that SHIFT+CAPS-LOCK is distinct from the normal shifted register, but for now this will suffice. Notice – among other things – the angle-brackets replacing the square brackets. Clearly, this mode is also useful for entering HTML without shift gymnastics.

But what about muscle memory of all those crazy passwords? Simple: change back to standard layout. This new layout acts as sort of a caps-lock for the symbols I have to type when writing code, and will save my shift keys from grave peril.