Jaroslaw, I've just tested a VNC Enterprise Edition server running on Linux against VNC Viewer Enterprise Edition and VNC Viewer Free Edition on Windows with the "Polish (Programmers)" keyboard layout enabled. Running xev in the session, the behaviour is as one would expect:
- VNC Viewer Free Edition (which only supports ISO-Latin-1 keyboard input) Pressing AltGr-A, -S and -X causes xev to press & then release Ctrl_L and Alt_R, before pressing "a", "s" or "x", respectively. The keypress is made without modifiers, so that the when typing in to an xterm, for example, you'll see "a", "s" and "x" respectively. - VNC Viewer Enterprise Edition (which has extensive support for non-ISO-Latin-1 keyboard input) Pressing AltGr-A, -S and -X causes xev to press & then release Ctrl_L and Alt_R, before pressing "aogonek", "sacute" or "zacute", respectively. The keypress is made without modifiers, so that the when typing in to an xterm, for example, you will see the appropriate Polish characters (in our tests we did not see the characters printed, because our test system doesn't handle Polish characters). Using xmodmap within an Xvnc session will almost certainly screw up your keyboard layout completely, unless you clear the keymap entirely and rebuild it from scratch, because of the way in which Xvnc dynamically allocates "keys" to keysym values that it receives (it has to do this in order to support arbitrary viewer keyboard layouts). Can you try the following test: - Start a completely fresh VNC server, and ensure that no xmodmap or RemapKeys are applied to it. - Run xev in that desktop. - Run VNC Viewer Enterprise Edition and connect to the desktop. - Set VNC Viewer Enterprise Edition to "Polish (Programmers)" keyboard layout, if it is not already set to that. - Type AltGr-A, -S and -X via into the xev window. - Post the resulting output to me. The results will definitely differ from those obtained with VNC Free Edition, since VNC Free Edition doesn't know about non-ISO-Latin-1 characters and hence is passed "a", "s" and "x" by Windows rather than the accented Polish versions. Regards, Wez @ RealVNC Ltd. > -----Original Message----- > From: [EMAIL PROTECTED] > [mailto:[EMAIL PROTECTED] On Behalf Of Jaroslaw Rafa > Sent: 28 December 2005 16:41 > To: [email protected] > Subject: Solaris server + Windows client + Polish characters problem > > 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 _______________________________________________ VNC-List mailing list [email protected] To remove yourself from the list visit: http://www.realvnc.com/mailman/listinfo/vnc-list
