Comment 0 for bug 1315867

Revision history for this message
Alkis Georgopoulos (alkisg) wrote :

unity-settings-daemon => gsd-keyboard-manager.c has an Ubuntu specific patch that strips the grp: part in XKB options:
        if (n_sources < 2 || g_strcmp0 (g_getenv ("XDG_CURRENT_DESKTOP"), "Unity") == 0)
                strip_xkb_option (options, "grp:");

The original upstream source code is:
        if (n_sources < 2)
                strip_xkb_option (options, "grp:");

That causes a problem: we're no longer able to type e.g. Greek in TuxPaint, because TuxPaint grabs the keyboard layout, and u-s-d then doesn't see the layout switching shortcut.

But: if we do revert only that line of the source code to what's in upstream, then we get another problem: that the XKB-defined layout switching shortcut (e.g. Alt+Shift) doesn't update the keyboard indicator in the panel, only the GNOME-defined shortcut (e.g. Win+Space) does.
To solve this, I think u-s-d needs to handle ISO_Next_Group. I don't know if that part exists upstream, but I do know that it works fine in Fedora 20.

After solving this bug, a tiny issue will remain: that Alt+Shift inside keyb-grabbing applications won't update the keyboard indicator. Upstream GNOME doesn't want patches for that and may try to solve it in SDL, but the other 2 issues described above ^ are Ubuntu-specific.