Finally, I discover there is a tool that does what I want: allow keyboard map definitions for (in my case) Windows 2000.
I've just finished using it, and there's only one problem: those bat rastiches in Redmond require that all keys generated by 'space' be "spacing" keys, whatever that means. So I can't bind shift-space = _ as I normally do under X. (Damn, that's annoying.) Beyond that, I've got two MSI's to offer: A 'basic' keyboard definition that adds AltGraph (Alt+Ctrl, or Right-Alt) and AltGr+Shift keys as follows: AltGr+Shift: 1 -> '¹' SUPERSCRIPT ONE U+00B9 2 -> '²' SUPERSCRIPT TWO U+00B2 3 -> '³' SUPERSCRIPT THREE U+00B3 / -> '÷' DIVISION SIGN U+00F7 AltGr: ` -> '¬' NOT SIGN U+00AC 1 -> '¡' INVERTED EXCLAMATION MARK U+00A1 2 -> '¤' CURRENCY SIGN U+00A4 4 -> '§' SECTION SIGN U+00A7 5 -> '¶' PILCROW SIGN = PARAGRAPH SIGN U+00B6 8 -> '×' MULTIPLICATION SIGN U+00D7 0 -> '°' DEGREE SIGN U+00B0 - -> '¯' MACRON = overline U+00AF = -> '±' PLUS-MINUS SIGN U+00B1 r -> '®' REGISTERED SIGN = REGISTERED TRADE MARK SIGN U+00AE [ -> '«' LEFT-POINTING DOUBLE ANGLE QUOTATION MARK = LEFT POINTING GUILLEMET U+00AB ] -> '»' RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK = RIGHT POINTING GUILLEMET U+00BB \ -> '¦' BROKEN BAR U+00A^ ' -> '´' ACUTE ACCENT U+00B4 c -> '©' COPYRIGHT SIGN U+00A9 . -> '·' MIDDLE DOT U+00B7 / -> '¿' INVERTED QUESTION MARK U+00BF available at: www.longacre-inc.com/perl6/kbdUSP6b.msi (The KLC files are in the same place with the same basename.) and a 'weird' version that does all of the above, plus reverses the shift state of all the numeric digits plus tilde: «`~ 1! 2@ 3# 4$ 5% 6^ 7& 8* 9( 0)» -> «~` !1 @2 #3 $4 %5 ^6 &7 *8 (9 )0» available at: www.longacre-inc.com/perl6/kbdUSP6e.msi Note that you must, AFAICT, have Administrator privs to perform the installation, but do not need admin to add/use the keyboard once it has been installed. (Probably has to do with write privs to c:\windows\system32, or wherever.) The application, for the inevitable guy that agrees with me in principle but violently disagrees with my choice of mappings (where's T. William Wells when you need him?), is a Microsoft product (requires .NET framework) available at: http://www.microsoft.com/globaldev/tools/msklc.mspx To speculate some (I'm not sure if I should take insult or not, Piers) perhaps we could add ¯ (MACRON) to the list of identifier characters: $foo_bar $fooBar $foo¯bar Put ¯¯that¯¯ in your naming convention and smoke it. (I have no idea how to translate that character in a reversible way. _over_ perhaps?) =Austin