Hello all.
I have browsed the archives but couldn't find any solution to my problem.
I run RealVNC server version 4.1.1 on Solaris 8 in inetd mode (dtlogin
handles the login process and CDE session starts up after login).
Most of the clients connecting to this machine are Windows computers, and
the users need to be able to type Polish characters. This is where the
problem appears, but I need to make some introduction first.

In Poland we generally don't use keyboards with Polish layout (!), but
rather standard US-English keyboards and obtain Polish characters with right
Alt key, so for example RAlt-o is the Polish letter "s" (oacute, 0xF3 in
ISO-8859-2 character set).
However, Windows' character encoding differs from ISO-8859-2 standard, and
three Polish characters are causing problems: "1" (aogonek, 0xB1 in ISO,
0xB9 in Windows), "6" (sacute, 0xB6 in ISO, 0x9C in Windows) and "<"
(zacute, 0xBC in ISO, 0x9F in Windows), as well as their uppercase
counterparts "!" (Aogonek, 0xA1 ISO, 0xA5 Win), "&" (Sacute, 0xA6 ISO, 0x8C
Win) and "," (Zacute, 0xAC ISO, 0x8F Win). To type these characters, the key
combinations RAlt-a, RAlt-s and RAlt-x are used (RAlt-x for zacute because
RAlt-z is used for zdot, "?", 0xBF in both ISO and Windows).

Of course, these three characters can't be typed into Unix applications run
via VNC. It's easy to solve the problem with the letter "1" (aogonek),
because it requires only to add the "RemapKeys=0xb9->0xb1,0xa5->0xa1"
parameter to the VNC server command line and it works fine. The other two
letters, however, cannot be handled this way, because their Windows codes
(0x9C, 0x9F etc.) are not sent directly to the VNC server! RAlt-s seems to
work like Ctrl-S, pausing the character display in the terminal window, and
RAlt-x does nothing at all.

I ran xev to check what keycodes the server receives when I press RAlt-s,
and got the following:


KeyPress event, serial 22, synthetic NO, window 0x2400001,
     root 0x26, subw 0x2400002, time 1321513152, (44,46), root:(100,102),
     state 0x0, keycode 37 (keysym 0xffe3, Control_L), same_screen YES,
     XLookupString gives 0 characters:  ""

KeyPress event, serial 22, synthetic NO, window 0x2400001,
     root 0x26, subw 0x2400002, time 1321513152, (44,46), root:(100,102),
     state 0x4, keycode 113 (keysym 0xffea, Alt_R), same_screen YES,
     XLookupString gives 0 characters:  ""

KeyPress event, serial 22, synthetic NO, window 0x2400001,
     root 0x26, subw 0x2400002, time 1321513847, (44,46), root:(100,102),
     state 0xc, keycode 39 (keysym 0x73, s), same_screen YES,
     XLookupString gives 1 characters:  ""

KeyRelease event, serial 22, synthetic NO, window 0x2400001,
     root 0x26, subw 0x2400002, time 1321513922, (44,46), root:(100,102),
     state 0xc, keycode 39 (keysym 0x73, s), same_screen YES,
     XLookupString gives 1 characters:  ""

KeyRelease event, serial 22, synthetic NO, window 0x2400001,
     root 0x26, subw 0x2400002, time 1321514891, (44,46), root:(100,102),
     state 0xc, keycode 37 (keysym 0xffe3, Control_L), same_screen YES,
     XLookupString gives 0 characters:  ""

KeyRelease event, serial 22, synthetic NO, window 0x2400001,
     root 0x26, subw 0x2400002, time 1321514891, (44,46), root:(100,102),
     state 0x8, keycode 113 (keysym 0xffea, Alt_R), same_screen YES,
     XLookupString gives 0 characters:  ""


It looks like pressing the right Alt key sends keycodes for both right Alt
and left Control key. So this is the reason why RAlt-S works like Ctrl-S. So
I disabled the control keys for awhile (xmodmap -e 'clear control' - of
course it's unacceptable as a long-term solution, it's for testing only),
and then RAlt-s types "s" and not sacute, regardless of the fact that I
explicitly defined 'keysym s = s S sacute Sacute' in xmodmap - this is the
standard way to define Polish characters on a "regular" X keyboard.

I tried several different things with xmodmap, like redefining the Alt_R
keysym to Mode_switch (but then xev showed that the right Alt key started to
generate the keycode for Alt_L instead, and when I redefined this one too,
generated an empty symbol - keysym 0x0, NoSymbol), and adding
Alt_R/Alt_L/Mode_switch to all possible modifier sets, from mod1 to mod5. To
no effect.

Does anybody have an idea, how to solve it?
Of course, the Solaris machine where the VNC server is, is set to correct
locale (pl_PL.ISO8859-2).
Regards,
   Jaroslaw Rafa
   [EMAIL PROTECTED]
_______________________________________________
VNC-List mailing list
[email protected]
To remove yourself from the list visit:
http://www.realvnc.com/mailman/listinfo/vnc-list

Reply via email to