I'm a programmer. As such I early noticed how poorly the german Qwertz layout fit my needs, so I first switched to Qwerty, and soon after to Dvorak. My frist mechanical keyboard was a Poker, which obviously doesn't have a numpad. Since I wasn't used to the main block number keys, I mapped a virtual numpad onto it. But my Poker did not only lack a numpad, it also didn't have any labels, which is why it became inconvenient for me to type %^&* (or Shift+5678 respectively), I simply never hit the right keys on the first try. So I mapped the symbols right above their corresponding numbers on the virtual numpad. And since the original number row now was all cleared up, I could put other useful keys there.
I've been using these extra layers ever since and it evolved into something the main characteristics of which I want to share with you on the TE below.
(original TE picture by TrulyErgonomic.com)
First the remapped keys. Notice the extra num/sym modifiers. ". :" means "." with no modifiers and ":" while holding shift.
The number layer.
The symbol layer.
0 is the most common digit, so I mapped it onto a thumb key. Because the numbers are aligned in two rows over each other, there is no case in which you'd have to reach over one row. And there are less same-finger digraphs in general. Since all digits are mapped directly under you fingers, each number can be typed blindly. This makes it convenient to type numbers, like 21.08.2012 or 192.168.0.255 or 1982 etc
But numbers also have their associated brackets, which activate as soon as the num-modifier is pressed for easy array access ( myarray[0] ) or literature references.
= is part of digraphs with many other symbols, which again is why I put it on a thumb key. Consider != <= >= += *=
Here are some other convenient... things:
/* comments */
\t \n \s (Dvorak!)
<!-- <? />
&& ||
?!
#!
(!myvar)
@Override
#ff00ff
95.5%
$10
20€
+1
§15
Also Up/Down placement makes for nice console or urlbar history browsing with the up key being the one further away since I somehow associate it with escape in functionality (and escape is "far up left"). Left/Right makes it easy to type brackets and place the cursor between them after. It's like manual autocomplete and comes in handy when nesting multiple brackets as in array[function(array[index]+1)] (it's late, I'm sorry!!)
So this is how far I've come on my quest of ultimate typing laziness. What do you think? Would you rather have it a different way?