Why the "Windows" key won't be supported.

Olivier Fourdan fourdan at xfce.org
Fri Sep 8 19:28:02 CEST 2006


-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Jani Monoses wrote:
[...]

>> Until now, it was more or less supported by the keyboard and window 
>> manager shortcuts editors, mostly as a result of side effects  (see bug 
>> #1737 [1] for an example of such inconsistency)
> I commented on that bug with an inconsistency I experience usng gtk+ 2.10

I've added my comment the bug too.

>> According to this thread [2], things may change in the future. The API 
>> documentation for gtk+ 2.9.0 already mention the SUPER/META/HYPER modifiers.
> 
> There is support for this in gtk+ 2.10 now so it probably could be made
> to work.

It actually works. I'll copy my comment here, just for the record (and
for those who don't feel like digging in Bugzilla), because that might
be of interests to some people.

Ok, I see what you mean, but I'm not sure the problem lies in our code.
Let's see how I can demonstrate that.

By default, on my Xorg system, I have the following modifiers defined :

shift       Shift_L (0x32),  Shift_R (0x3e)
lock        Caps_Lock (0x42)
control     Control_L (0x25),  Control_R (0x6d)
mod1        Alt_L (0x40),  Alt_L (0x7d),  Meta_L (0x9c)
mod2        Num_Lock (0x4d)
mod3
mod4        Super_L (0x7f),  Hyper_L (0x80)
mod5        Mode_switch (0x5d),  ISO_Level3_Shift (0x71), ISO_Level3_Shift
(0x7c)

As you can see, Super_L is listed as a modifier but *not* Super_R. That
could explain, IMHO, why pressing the right "Windows" key is seen as a
regular keystroke and not as a modifier as you could expect.

To check that theory, a simple test is to add Super_R as a modifier.
Let's proceed as follow:

    xmodmap -e "clear mod4"
    xmodmap -e "add mod4 = Super_L Super_R Hyper_L"

That should do the trick. Let's checkn rerun "xmodmap" again to see what
is now listed as mod4:

shift       Shift_L (0x32),  Shift_R (0x3e)
lock        Caps_Lock (0x42)
control     Control_L (0x25),  Control_R (0x6d)
mod1        Alt_L (0x40),  Alt_L (0x7d),  Meta_L (0x9c)
mod2        Num_Lock (0x4d)
mod3
mod4        Super_L (0x73),  Super_L (0x7f),  Super_R (0x74),  Hyper_L
(0x80)
mod5        Mode_switch (0x5d),  ISO_Level3_Shift (0x71), ISO_Level3_Shift
(0x7c)

Great! So now both Super_L and Super_R are listed as modifiers. Now, the
last step is to check with the shortcut manager (both keyboard and WM
shortcuts) And indeed that works with both.

Therefore, I do think that this issue could be related to the default
Xorg Xmodmap mapping.

Olivier.
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.2.2 (GNU/Linux)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org

iD8DBQFFAaghFHBtvh5LRUARAsSBAJ9xcMpGn9XlYy32zVdaFQrE1bmqWwCbB3Ig
HgaukqfgTOz6ZBi27MtTfqE=
=V84O
-----END PGP SIGNATURE-----



More information about the Xfce4-dev mailing list