I have used the Dvorak keyboard for a long time, but as I spent more and more time coding, I spent more and more of my time using the shift key. I was looking for solutions to this, but was unhappy with what I found. The basic (not new) idea is to put the number keys on shift access and to put common punctuation marks where the numbers currently are. The rest of the design goal was to be very similar to dvorak, so the main part of the keyboard is unchanged. The layout is as follows:
Normal:
$&{[(+!=)]}*# // Going from querty ` to =
',.pyfgcrl/@\ // Going from querty q to \
aoeuidhtns-
;qjkxbmwvz
On shift:
~1234567890%`
"<>PYFGCRL?^|
AOEUIDHTNS_
:QJKXBMWVZ
As you can see, it's mostly the same as dvorak, but the punctuation is all different. What I really like about this set up is the symmetry. (), [], {} are all equally far away from the middle (querty 6). += also have a nice symmetry, as do pointer reference and dereference &*. It also makes @ and / more easily accessible.
The repository currently only provides a .keylayout used in OSX.