This is the mail archive of the cygwin mailing list for the Cygwin project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

AltGr troubles (was: Re: Suggestion for terminal package maintainers)


Back to the cygwin list, since this is getting off-topic for cygwin-apps.

2009/6/3 Ken Brown:
> On 6/3/2009 10:32 AM, Corinna Vinschen wrote:
>>>> On non-English keyboards, the right Alt key is called AltGr and returns
>>>> the modifiers Left-Control/Right-Alt.
>>>
>>> So maybe the answer is that Left-Control+Left-Alt and
>>> ÂRight-Control+Right-Alt should each be interpreted as Control+Alt. ÂSomeone
>>> deliberately trying to enter Control+Alt+some-other-key is not Âlikely to
>>> use different hands for Control and Alt.
>>
>> Wrong, imho. ÂIf the non-modifier key is on the right side of the
>> keyboard, many users tend to press left-ctrl/right-alt/non-mod-key.
>> Trust me. ÂWe had kind of the same discussion 10 or so years ago.
>
> OK. ÂI'm not interested in repeating an old discussion. ÂBut it does seem
> that the release of 1.7 is a good time to decide whether the cygwin console
> is emulating linux or xterm or something else and then make this happen as
> much as possible.
>
> FWIW, I just tried Andy's echokeys program in xterm and in mintty
> [with Ctrl+Alt+A combinations].
> In xterm the output is \x81 with all four combinations of left/right.

That's with the "Meta sends Escape" option off, where Meta sets the
highest bit of the character instead of prefixing it with escape. That
only works with plain old 7-bit ASCII though.


> In mintty, the output is ^[^A with three of the four combinations,
> and nothing in the fourth.  The one that generates nothing
> is left-ctrl/right-alt (corresponding to AltGr).

Consider it a bug. I tried to do something too clever with AltGr in
mintty-0.3, but it didn't really make sense, so I gave up on it for
0.4. (Partly because afaik, the Win32 interface doesn't even give you
a way to find out whether a keyboard layout actually has an AltGr
key.)

So MinTTY is now back to standard AltGr == Ctrl + Alt behaviour. It
first tries the Windows keyboard layout, and if that comes back
empty-handed, it sends the Ctrl+Alt-modified keycode such as ^[^A. If
the keyboard layout does have an AltGr keycode, you can use
Ctrl+Shift+A instead to get the ^[^A code anyway. That's non-standard
though, and not exactly obvious.

One approach that would make some sense is to not consult the keyboard
layout for Ctrl+LeftAlt combinations (since the AltGr key is always on
the right). Trouble is, some people do use that to get AltGr codes for
keys on the right-hand side of the keyboard.

Michael Kaplan, Microsoft internationalisation expert and author of
the MS Keyboard Layout Creator utility, has had a long-running feud
with the MS Office team about this whole sorry topic, e.g.:

http://blogs.msdn.com/michkap/archive/2006/04/17/577196.aspx

Xwin, however, does manage to treat AltGr as a completely independent
modifier key, so I had a look how it does that. Turns out it's got a
rather interesting hack that ignores LeftCtrl key messages if they're
followed by a RightAlt message with the same timestamp. That doesn't
seem to be entirely reliable though, according to this post earlier
today:

http://www.cygwin.com/ml/cygwin-xfree/2009-06/msg00001.html

Advice on what to do about this whole problem welcome.

Andy


ps: The latest MinTTY 0.4 "release candidate" can be found at
http://mintty.googlecode.com.

--
Unsubscribe info:      http://cygwin.com/ml/#unsubscribe-simple
Problem reports:       http://cygwin.com/problems.html
Documentation:         http://cygwin.com/docs.html
FAQ:                   http://cygwin.com/faq/


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]