[comp.windows.x] Scandinavian alphabet and the lock modifier

hassinen@ujocs.UUCP (Kari Hassinen) (04/11/89)

The scandinavian alphabet consist of characters a..z,},{ and |, where,
for example, "{" is actually the character "a" with two dots above it. 
I can make new fonts for the scandinavian alphabet and I can even modify
the keyboard and swap, for example, the characters [ and { in a key.
But there is a tiny  problem in the working of the lock modifier key. 
The lock modifier has no effect on these special characters. How can I
get the lock modifier key to work with }, { and | as it works with
a..z? I found from the source code of the XLookupString() a promising point
as follows.

if ((event->state & LockMask) && (dpy->lock_meaning == XK_Caps_Lock)) {
       if (symbol >= XK_a && symbol <= XK_z)
             symbol -= (XK_a - XK_A);
       else if (symbol >= XK_agrave && symbol <= XK_odiaeresis)
             symbol -= (XK_agrave - XK_Agrave);
       else if (symbol >= XK_oslash && symbol <= XK_thorn)
             symbol -= (XK_oslash - XK_Ooblique);
}

I think that this is the right place for some hacking, or is it??

thanks
(hassinen@ujocs.joensuu.fi)

rws@EXPO.LCS.MIT.EDU (Bob Scheifler) (04/12/89)

    How can I
    get the lock modifier key to work with }, { and | as it works with
    a..z?

I assume you really mean, how can you get the lock modifier to work with
"a with diaeresis" and a few other Latin 1 characters.  XLookupString
should work fine for this.  All you need do is place the proper keysyms
(e.g. "adiaeresis") on the keys using xmodmap.

    I think that this is the right place for some hacking, or is it??

No hacking should be required.