(In reply to comment #45)
> (In reply to comment #44)
> > Until a solution is to be found, could 518c769d be reverted for now?
> > Breaking the very standard behavior of right control
> 
> It does not break the very standard behavior of right control any more than
> altrgr breaks the very standard behavior of right alt

For me it does.  My keyboard has an "Alt Gr" label on the AltR key, so
it indeed is expected to behave differently from Alt_L, but my ControlR
key is labeled as "Ctrl", just like the ControlL key.  And all other
keyboards and OSes I ever used did handle ControlR the same as ControlL,
as far as I was concerned as a user.

Also, I find it more generically problematic to change the behavior of a
common key on a widely used keymap.  For example the change annoyed me
for about a month before I took the time to debug this and edit my
keymap -- and I can't imagine what a lambda user could do but learn to
deal with it.

Also, what is Level5 used for?  IIUC, currently nothing but short-nbsp
(or at least that I can find, which is practically the same from a user
POV), turning Ctrl_R into a virtually useless key.


So, what can we do?

First, please note, for what is worth, that both Rhythmbox and Totem, which 
were cited as the applications having a problem with the previous state of 
things, are not affected anymore.  Rhythmbox don't use Control+Space as a 
shortcut anymore, and Totem seem to react to any space keysym, no matter the 
modifiers.
So, unless there actually are other applications using Control+Space and 
suffering of the issue (Code::Blocks?), the problem does not even exist anymore.
Also, maybe I just don't know how one is supposed to process the events, but 
those bugs look like an application or toolkit issue to me, is it?


Then, practical changes.  Before the change, Space behaved like this:

 Shift* | Control* | Level3 || keysym    | XLookupString
 ---------------------------||--------------------------
        |          |        || 0x20      | 20
 X      |          |        || 0x20      | 20
        | X        |        || 0x20      | 20
        |          | X      || 0x20      | 20
 X      | X        |        || 0x100202f | e2 80 af
 X      |          | X      || 0xa0      | c2 a0
        | X        | X      || NoSymbol  |
 X      | X        | X      || NoSymbol  |

And now we have:

 Shift* | ControlL | Level3 | Level5 || keysym    | XLookupString
 ------------------------------------||---------------------------------
        |          |        |        || 0x20      | 20
 X      |          |        |        || 0x20      | 20
        | X        |        |        || 0x20      | 00
        |          | X      |        || 0x20      | 20
        |          |        | X      || 0x20      | 20
 X      | X        |        |        || 0x20      | 00
 X      |          | X      |        || 0xa0      | c2 a0
 X      |          |        | X      || 0x100202f | e2 80 af
        | X        | X      |        || 0x20      | 00
        | X        |        | X      || 0x20      | 00
        |          | X      | X      || NoSymbol  |
 X      | X        | X      |        || 0xa0      | (empty)
 X      | X        |        | X      ||           | (no event on Xev???)
 X      |          | X      | X      || NoSymbol  |
 X      | X        | X      | X      ||           | (no event on Xev???)


So.  IIUC, the problem is having naked Space emit the same XLookupString that 
Control+Space, right?  The new behavior is emitting lookup string "00" with 
modifier Control, so I guess this is the fix.

So, what about simply changing the original map to have a different
lookup string on Control?  Like this:

 Shift* | Control* | Level3 || keysym    | XLookupString
 ---------------------------||--------------------------
        |          |        || 0x20      | 20
 X      |          |        || 0x20      | 20
        | X        |        || 0x20      | 00
        |          | X      || 0x20      | 20
 X      | X        |        || 0x100202f | e2 80 af
 X      |          | X      || 0xa0      | c2 a0
        | X        | X      || NoSymbol  |
 X      | X        | X      || NoSymbol  |


Or, if we don't want to have anything useful using Control, what about moving 
0x100202f to Level3?  Like this:

 Shift* | Control* | Level3 || keysym    | XLookupString
 ---------------------------||--------------------------
        |          |        || 0x20      | 20
 X      |          |        || 0x20      | 20
        | X        |        || 0x20      | 00
        |          | X      || 0x100202f | e2 80 af
 X      | X        |        || 0x20      | 00
 X      |          | X      || 0xa0      | c2 a0
        | X        | X      || NoSymbol  |
 X      | X        | X      || NoSymbol  |


Alternatively, the mapping of ControlR to Level5 could be an option (or a 
slightly different variant, whatever's better).


Anything that could prevent me from manually editing my map to have ControlR 
again would be totally great.

-- 
You received this bug notification because you are a member of Ubuntu
Bugs, which is subscribed to Ubuntu.
https://bugs.launchpad.net/bugs/1013881

Title:
  Right-Ctrl key broken on French OSS keyboard

To manage notifications about this bug go to:
https://bugs.launchpad.net/xkeyboard-config/+bug/1013881/+subscriptions

-- 
ubuntu-bugs mailing list
ubuntu-bugs@lists.ubuntu.com
https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs

Reply via email to