This is the mail archive of the cygwin-xfree mailing list for the Cygwin XFree86 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]

Re: cygwin and xwin and super and hyper


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/


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