On 06/07/2011 09:15, Danilo Turina wrote:
having recently replaced my old keyboard (that had a US layout) with an
italian one, I'm having a problem with Cygwin X when running HP-UX clients:
AltGr does not work and this prevents me to use characters like "[" "{" "}"
"]", etc.
I'm up to date with Cygwin and Cygwin X at the moment ("1.7.9(0.237/5/3)
2011-03-29 10:10 i686 Cygwin" for Cygwin and "1.10.2.0" for XWin).
These are the steps to reproduce the problem:
1) start Cygwin X
2) disable access control ("xhost +")
3) access via telnet/ssh a HP-UX machine
4) open an xterm from the HP-UX machine in Cygwin X
5) in the newly opened xterm try to use AltGr (AltGr + "è" (i.e. the key
at the right of "P"), should produce "{", while AltGr + Shift + "è" should
produce "{")
I'm missing here what is actually produced. Nothing? or the unmodified è?
6) fall on the floor crying in desperation
This is perfectly normal for people having to deal with XKB :-)
Notice that when using a client from a Linux machine all works properly.
A googled a lot and found a lot of information but only few of it applied
(=helped) to my specific case. I tried to mess with xmodmap and kbd config
files and also with other stuff, but nothing seemed to solve the problem.
I think a solution is contained in this old mailing list post [1], use
XKB_DISABLE=1 and adjust the keyboard map so that AltGr is Mode_switch and the
keys have the expected mapping in group 2, activated via Mode_switch.
Note that just reassigning AltGr to Mode_switch is not enough, you'll need to
remap appropriately the keys which generate different characters with AltGr
e.g. something like:
xmodmap -e "clear mod5"
xmodmap -e "clear mod3"
xmodmap -e "keycode 113 = Mode_switch Multi_key"
xmodmap -e "add mod3 = Mode_switch"
xmodmap -e "keycode 34 = egrave eacute bracketleft braceleft"
(and so on for the other keys which need to generate different characters with
AltGr)
I can't test this, because I don't have access to a HP-UX machine.
[1] http://cygwin.com/ml/cygwin-xfree/2004-03/msg00454.html
At the moment I'm using Xming 6.9.0.31 that doesn't seem affected by the
problem IF I set XKB_DISABLE=1 on the client machine (i.e. HP-UX).
Trying to troubleshoot the problem, I used xev on the HP-UX machine to see if
the keys were properly recognized and, in effect, they are.
This are xev results for Cygwin X, when I press (and release) AltGr+è (thus by
trying to get "[") with XKB_DISABLED not set:
[snip]
If I set XKB_DISABLED=1, I get, instead:
[snip]
If I try xev on Xming with XKB_DISABLED=1 (where I have no problem at all), I
get:
[snip]
It's kind of hard to know how to interpret these results since I don't know
what XKB_DISABLED=1 actually does.
One strange thing that I noticed is that if I start Cygwin X by using
"startxwin" from the Cygwin's command line, I get the following warning on
screen:
[snip]
The XKEYBOARD keymap compiler (xkbcomp) reports:
Warning: Type "ONE_LEVEL" has 1 levels, but<RALT> has 2 symbols
Ignoring extra symbols
But that warning is not present in XWin.0.log (attached).
I think this is normal, if a little odd. Warnings from xkbocmp are written to
stdout, but not written to the log.