This is the mail archive of the
cygwin-xfree
mailing list for the Cygwin XFree86 project.
Re: cygwin and xwin and super and hyper
- From: david at adboyd dot com (J. David Boyd)
- To: cygwin-xfree at cygwin dot com
- Date: Mon, 24 Jun 2013 14:08:16 -0400
- Subject: Re: cygwin and xwin and super and hyper
- References: <m9hi61x9bxl5 dot fsf at W0144758 dot usac dot mmm dot com> <51C2DF91 dot 1010605 at dronecode dot org dot uk> <m9hi61x7tq39 dot fsf at W0144758 dot usac dot mmm dot com> <51C8521B dot 9050507 at dronecode dot org dot uk>
- Reply-to: cygwin-xfree at cygwin dot com
Jon TURNEY <jon.turney@dronecode.org.uk> writes:
> On 21/06/2013 16:56, J. David Boyd wrote:
>> Jon TURNEY writes:
>>> On 19/06/2013 22:27, J. David Boyd wrote:
>>
>> All perfect so far.
>>
>> So, when I start up emacs, and press C-h k, then, for example, Capslock-d,
>> (hyper-d) I get 'H-d is undefined'. Yeah.
>>
>> Then I press C-h k, then Left-Win-d, (super-d), I get 'H-d is undefined', and
>> not 's-d is undefined', which is what I expected to see.
>>
>> Any ideas how I might resolve this?
>
> Looking at the xev output for Hyper-d and Super-d, it seems they have the same
> state (modifier) value.
>
> This is because xkeyboard-config seems to place super and hyper on the same
> modifier, mod4, as can be seen looking at the output of 'xmodmap -pm'
>
>> $ xmodmap -pm
>> xmodmap: up to 5 keys per modifier, (keycodes in parentheses):
>>
>> shift Shift_L (0x32), Shift_R (0x3e)
>> lock
>> control Control_L (0x25), Control_R (0x6d)
>> mod1 Alt_L (0x40), Alt_R (0x74), Meta_L (0x9c)
>> mod2 Num_Lock (0x4d)
>> mod3
>> mod4 Hyper_L (0x42), Super_L (0x73), Super_R (0x75), Super_L (0x7f), Hyper_L (0x80)
>> mod5 Mode_switch (0x8), ISO_Level3_Shift (0x7c)
>
> And it seems that emacs only looks at the modifier state, not the actual
> proceeding keypress.
>
> A workaround for this is to move Hyper_L to the unused mod3 modifier.
>
>> $ xmodmap -e "remove mod4 = Hyper_L"
>>
>> $ xmodmap -e "add mod3 = Hyper_L"
>>
>> $ xmodmap -pm
>> xmodmap: up to 3 keys per modifier, (keycodes in parentheses):
>>
>> shift Shift_L (0x32), Shift_R (0x3e)
>> lock
>> control Control_L (0x25), Control_R (0x6d)
>> mod1 Alt_L (0x40), Alt_R (0x74), Meta_L (0x9c)
>> mod2 Num_Lock (0x4d)
>> mod3 Hyper_L (0x42), Hyper_L (0x80)
>> mod4 Super_L (0x73), Super_R (0x75), Super_L (0x7f)
>> mod5 Mode_switch (0x8), ISO_Level3_Shift (0x7c)
>
> It's probably a bug that this doesn't work as expected, but I'm not sure in what.
Thanks, that just what I did, and now it works fine.
--
Unsubscribe info: http://cygwin.com/ml/#unsubscribe-simple
Problem reports: http://cygwin.com/problems.html
Documentation: http://x.cygwin.com/docs/
FAQ: http://x.cygwin.com/docs/faq/