After an evaluation, GNOME has moved from Bugzilla to GitLab. Learn more about GitLab.
No new issues can be reported in GNOME Bugzilla anymore.
To report an issue in a GNOME project, go to GNOME GitLab.
Do not go to GNOME Gitlab for: Bluefish, Doxygen, GnuCash, GStreamer, java-gnome, LDTP, NetworkManager, Tomboy.
Bug 682240 - Option to enable extra keyboard layout is missing
Option to enable extra keyboard layout is missing
Status: RESOLVED FIXED
Product: gnome-desktop
Classification: Core
Component: libgnome-desktop
3.5.x
Other Linux
: Normal major
: ---
Assigned To: Desktop Maintainers
Desktop Maintainers
Depends on: 683232
Blocks:
 
 
Reported: 2012-08-20 11:07 UTC by Vasyĺ V. Vercynśkyj
Modified: 2012-09-04 12:00 UTC
See Also:
GNOME target: ---
GNOME version: ---


Attachments
gnome-xkb-info: Honor the 'xkb-use-extra-rules' gsettings key (4.83 KB, patch)
2012-09-02 23:49 UTC, Rui Matos
accepted-commit_now Details | Review
gnome-xkb-info: Honor the 'show-all-sources' gsettings key (4.82 KB, patch)
2012-09-03 22:25 UTC, Rui Matos
committed Details | Review

Description Vasyĺ V. Vercynśkyj 2012-08-20 11:07:43 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
Comment 1 Sergey V. Udaltsov 2012-08-20 11:42:58 UTC
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
Comment 2 Vasyĺ V. Vercynśkyj 2012-08-20 12:55:50 UTC
(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.
Comment 3 Sergey V. Udaltsov 2012-08-20 12:57:38 UTC
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.
Comment 4 Vasyĺ V. Vercynśkyj 2012-08-20 13:46:35 UTC
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.
Comment 5 Sergey V. Udaltsov 2012-08-20 13:58:10 UTC
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.
Comment 6 Vasyĺ V. Vercynśkyj 2012-08-20 14:37:02 UTC
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 :)
Comment 7 Matthias Clasen 2012-08-22 12:19:37 UTC
(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...
Comment 8 Rui Matos 2012-09-02 23:49:43 UTC
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.
Comment 9 Rui Matos 2012-09-03 22:25:23 UTC
Created attachment 223381 [details] [review]
gnome-xkb-info: Honor the 'show-all-sources' gsettings key

--

Updated for the key name change.
Comment 10 Colin Walters 2012-09-03 22:31:12 UTC
Review of attachment 223231 [details] [review]:

Looks reasonable.
Comment 11 Matthias Clasen 2012-09-04 01:20:39 UTC
Review of attachment 223381 [details] [review]:

Looks good to me
Comment 12 Bastien Nocera 2012-09-04 10:29:10 UTC
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.
Comment 13 Rui Matos 2012-09-04 12:00:24 UTC
(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