Comment 31 for bug 198759

Revision history for this message
Edgar Bonet (linu7) wrote :

Can someone please reopen this bug? I confirm it is still here on Ubuntu Trusty 14.04.3 LTS.

I managed to fix the bug on my system. I am sharing here both my findings and a patch.

The upstream fix from freedesktop.org does essentially three things:

 1. In types/pc, define a new type LOCAL_EIGHT_LEVEL. Works like EIGHT_LEVEL but uses Control instead of LevelFive to access the extra shift levels. Does not need to have a key mapped to LevelFive.

 2. In symbols/nbsp, define a mapping for the space key named level4nl. Identical to level4n but with type LOCAL_EIGHT_LEVEL instead of EIGHT_LEVEL.

 3. In symbols/fr, section "oss",
      - remove “include "level5(rctrl_switch)"” (this is the same as Franck's workaround),
      - replace “include "nbsp(level4n)"” with “include "nbsp(level4nl)"”

Inspecting the files on my system, it appears that parts 1 and 2 of the fix are implemented, but part 3 is missing. I browsed the source code at https://code.launchpad.net/ubuntu/+source/xkeyboard-config and it appears the bug has been reintroduced on 2013-12-22, here: http://bazaar.launchpad.net/~ubuntu-branches/ubuntu/trusty/xkeyboard-config/trusty/revision/1.1.16#symbols/fr It also appears to affect Trusty, Vivid and Wily, but not Precise.

The attached patch fixes the issue on my system. This is essentially part 3 of the freedesktop.org fix, with also some comments fixed to match reality. For the patch to be effective, I had to remove the cached precompiled XKB files (sudo rm -f /var/lib/xkb/server-*.xkm) before restarting the server. Now, I have an fr-oss keyboard with a functional Control_R, and I still can type a narrow no-break space (U+202F) as Ctrl+Shift+Space, with either the left or the right control and/or shift keys.