GNOME Bugzilla – Bug 682240
Option to enable extra keyboard layout is missing
Last modified: 2012-09-04 12:00:27 UTC
Intro: There no any way to make extra keyboard layout to be accessible/visible in keyboard layout choice dialog. So it is impossible to use keyboard configuration tool in gnome-control-center to set an extra keyboard layout (such as Iran: Avestan; Lithuania: Dvorak; USA: International (AltGr Unicode combining|alternative), Atsina, Couer D'alene Salish; Romania: Ergonomic Touchtype; Serbia: Combining accents instead of dead keys; Russia: Church Slavonic, RUU; etc.). KDE4 loads these layouts without any user actions. GNOME2 makes these layouts visible in keyboard setting dialog through enabling "load-extra-items" option. But GNOME3 can't do this at all. Reason: The keyboard configuration module of the gnome-control-center is totally ignore keyboard layout rules which are placed in /usr/share/X11/xkb/rules/base.extras.xml. Consequences: All keyboard layouts from "extra" section of xkb-data are not available for use. Solutions: 1. Make gnome-control-center to read rules from /usr/share/X11/xkb/rules/base.extras.xml by default. or 2. Create an option (Check Box) in gnome-control-center that enable extra keyboard layouts. Thanks in advance
There is option #3 - only create a setting in gconf (no GUI). That's the way it is currently implemented. IMHO that would be reasonable compromise
(In reply to comment #1) > There is option #3 - only create a setting in gconf (no GUI). That's the way it > is currently implemented. IMHO that would be reasonable compromise "Reasonable" but only if solutions #1 & #2 will be very difficult to implement. «Extra keyboard layouts» check-box in the keyboard configuring dialog is much more obvious and convenient (especially for newbies) than rummage in gconf.
It is not about difficulty. I'm afraid GNOME designers would be unwilling to provide easy way to access exotic stuff. Extra checkbox, useful for minorities. Against GNOME policies.
I think that «Adding Esperanto circumflexes» is more exotic than «Extra keyboard layouts» feature :) But these are endless polemics. I hope that the issue will be solved under the influence of GNOME global trend of usability for regular users.
IIRC Rui was going to rethink the "base vs extras" and submit some patches to xk-c. I must admit the policy is not straightforward. A lot of layouts that actually exotic are kept in base just because they were added before exotic section was introduced.
You're right, some revision for existing layouts is extremely needed. And as the result of the revision many layouts will be replaced to extra section and many users will require to solve the bug :)
(In reply to comment #1) > There is option #3 - only create a setting in gconf (no GUI). That's the way it > is currently implemented. IMHO that would be reasonable compromise That would be a reasonable plan for 3.6, and also avoids the UI freeze...
Created attachment 223231 [details] [review] gnome-xkb-info: Honor the 'xkb-use-extra-rules' gsettings key When this key is set to true we also load XKB layouts and options from xkeyboard-config's .extra.xml file.
Created attachment 223381 [details] [review] gnome-xkb-info: Honor the 'show-all-sources' gsettings key -- Updated for the key name change.
Review of attachment 223231 [details] [review]: Looks reasonable.
Review of attachment 223381 [details] [review]: Looks good to me
Review of attachment 223381 [details] [review]: ::: libgnome-desktop/gnome-xkb-info.c @@ +552,3 @@ + + settings = g_settings_new ("org.gnome.desktop.input-sources"); + use_extra_rules = g_settings_get_boolean (settings, "show-all-sources"); Personally, I would rather the object didn't try to check the settings itself, but had a property (FALSE by default) which the calling code would set. I'd be fine if this was done in clean up patches though.
(In reply to comment #12) > Review of attachment 223381 [details] [review]: > > ::: libgnome-desktop/gnome-xkb-info.c > @@ +552,3 @@ > + > + settings = g_settings_new ("org.gnome.desktop.input-sources"); > + use_extra_rules = g_settings_get_boolean (settings, "show-all-sources"); > > Personally, I would rather the object didn't try to check the settings itself, > but had a property (FALSE by default) which the calling code would set. > > I'd be fine if this was done in clean up patches though. Ok, I also thought about that but didn't want to change the API at this point. I've pushed with the variable renamed to follow the gsettings key. Attachment 223381 [details] pushed as ca86bf5 - gnome-xkb-info: Honor the 'show-all-sources' gsettings key