Swapping shift and control on Mac OS X Leopard 1
I've just bought myself a spanking new ergonomic keyboard, but to my horror, the control key is way down the bottom of the screen.
"This is normal!" you say. Yes, but I use emacs, and it's far too far to reach every second keystroke. I like it where the caps lock usually is, and given that the caps lock is of no earthly use to anyone, it's usually easily swapped in using Keyboard Preferences on the Mac. Too easy!
Unfortunately, as you can see, the typematrix has sensibly done away with the caps lock, replacing it with a shift key the size of tasmania.

Don't get me wrong, gentle reader: I love that key. I salivate over it, entertaining lewd thoughts entirely inappropriate to this family (and frankly dusty) blog. However, I want it for my own filthy purposes: to wit, as a big old Control key. Shift can be demoted to the old control key, which is close-as-dammit to its normal position, and all will be well with the universe.
But oh no! normal keyboard preferences will neither let you remap shift to something else, or remap anything else to shift! How can we fix this? Googling gave me DoubleCommand, which will let you change a few mappings in a distinctly non-orthogonal, non-extensible sort of way, and Ukulele, while an admirable piece of software for changing the mapping of regular keys, has absolutely no truck with modifier key. It looks like we are sunk! But hold! a ray of light on the horizon: an article on mapping other keys to shift using Interface Builder. This solves half of the problem, allowing me to map the piddly little control key to shift. It doesn't give me all of it, unfortunately. The approach can be extended, though: just copy one of the dropdown selectors and change the tag to '1', just like we did for the list of tags. One last little bit: we have to control-click on the new dropdown, select 'modifierMappingDidChange', and drag it to the "File's Owner" object.
and there it is.

it's so beautiful I could cry. But instead, I'm going to bed, knowing that just an hour's hacking has saved me milliseconds. Awesome.
