Making use of caps lock. ... No, seriously.

It is true. No longer will caps lock be the key that you accidentally hit an then hate for what it's doing.

So what is this about? A while ago I read about that fantastic idea of making the caps lock key behave like escape on Wolfgang's blog. Which is really an awesome thing, especially for vim users.
But we don't want to eliminate caps lock. We want to make use of it. So: I recently switched from a German keyboard layout to a standard US one. Quite soon I realized, that I woudn't mind writing umlauts (äöü) as ae, oe, ue but I'd really miss the s z ligature ‌ß
It then occured to me (i.e. after wining about it on irc someone reminded me) that I could use compose. Which I, till then, only used for my beloved dash (—).

But something was bothering me: while the origins of the ß are a bit complicated (the story includes the long s (ſ), a character that isn't used anymore, and there were different versions of the ligature using either the z or the s) and German speaking countries that don't use the ß, like Swizerlad, use ss instead, it's present name Eszett (naming the letters s and z) and things like the HTML entity being ß (s z ligature) make the ß — for me at least — more a ligature of s and z than of s and s. Yet, the default compose sequence for ß is ss. I had to change that.

While creating my own .XCompose file I had the idea to create compose sequences for hiragana (the reason why that's useful to me is a whole other story). But what would I use? <Multi_key> <a> for あ, <Multi_key> <n> <o> for の, etc.? Would be quite annoying to be forced to hit the compose key (mapped to the menu key in my case) for each and every hiragana. There had to be a better solution.
I looked into different input methods for Japanese, but aside from the fact, that they'd clearly be more sophisticated than what I'd come up with (due to me only having really basic knowledge of Japanese), they weren't really what I wanted to have.
I then thought about a separate .XCompose file for hiragana that simply woud map a to あ, n followed by o to の etc. and which I could load using some key combination. Turns out you can't change your .XCompose file on the fly. You have to restart X. :/ (At least I found no way to do it.)

After a while of thinking and testing I had the idea to use a modifier for my hiragana compose sequences. More specifically: a modifier that can be toggled on and of: CAPSLOCK!
What this means is, that for example a gets "composed" to あ, but only when the modifier is active. The cool thing about that is, that you even have an LED indicator for which "input mode" your in. LED off = romaji, LED on = hiragana. This of course can be used for anything. Instead of a hiragana mode you could have a writing upside down mode, a Greek mode, etc.

If you want to try it out, here's my current .Xmodmap (swaps escape and caps lock and set's compose to the menu key) and here's my .XCompose file.

2012-09-16