Input Sources in GNOME

Today I want to take a look at one of the bigger new features in the upcoming GNOME release, Input Sources. I have written some early code for this, but the credit for getting it all working and completed really goes to Rui Matos and Takao Fujiwara.

On a high level, the goal of the work we’ve done here is to make input methods an integral part of the user experience, just like keyboard layouts. You should no longer have to choose and install an input method framework manually. Things will just work out of the box, and the user experience for configuring and using input methods will match the rest of the desktop.

To reach this goal, we’ve made numerous improvements to the input method support in GTK+ 2, GTK+ 3, clutter and gnome-shell. IBus itself has also seen some changes as a result of this work. So, even if you don’t agree with our decision to use IBus and choose to use a different input method framework (which is still possible), you will benefit from these improvements.

But lets look in detail what’s available.

Keyboard layouts and input methods or Input Sources, as they are now called, are configured in the Region & Language settings.

When we first merged the input method support, there was only small list of supported input methods. We have now expanded the list to include input methods for all major languages.

The reason that we don’t just include everything is to avoid duplication between keyboard layouts and input methods and special-purpose input methods that are not aimed at language-specific input. If you happen to need one of these excluded input methods or layouts, you can use the setting to see everything.

Keep in mind that input methods are often shipped in individual packages or language-support groups, so if an input method is missing in the list, it may just not be installed on your system.

Some input methods are traditionally very configurable – we honour that by allowing them to open their own configuration UI. For keyboard layouts, some common variations (e.g. the Compose key) can be changed in the keyboard shortcuts.

You can switch between the configured input sources in the gnome-shell keyboard menu.

Again, we are respectful of input methods that traditionally have runtime configuration available in this place, and show the most important switches in the menu.

Some input methods present choices directly at the focus location. This candidate window is now using a shell-style popup, which has the same appearance regardless whether you are writing in an application or in gnome-shell.

So, what’s still missing ? GNOME 3.6 is right around the corner, but Rui is still busy working on support for layout-switching shortcuts like Alt+Shift. The user interface for changing these will find a (temporary) home in gnome-tweak-tool, together with some more keyboard layout variants.

Beyond 3.6, we want to make the on-screen keyboard play nice with input sources. We also plan to add an Alt-Tab like mode for switching input sources, etc. The feature page has some more details.

Here is a bonus screenshot which has nothing to do with Input Sources. It shows a gnome-shell feature that I recently discovered:

The Sound menu shows you the input level of your microphone – but only if an application is using audio input. Nifty !

20 thoughts on “Input Sources in GNOME”

  1. Hey,

    I want to note how to get “Region and Languages” running under Ubuntu 12.10 AND 12.04. I want to use it with its normal control center, is there a chance?

    Are there any packages out there for Ubuntu 12.10?

    People work on elementary OS Luna (based on Ubuntu 12.04), and such a feature would be a nice addition.

    Please mail me for a chat 🙂

    1. You have to talk to Ubuntu people about getting things working in the Ubuntu control center.
      The right place to chat about gnome-control-center is #control-center on GimpNet.

    2. I don’t think it’s a good idea to try to backport the new GNOME stuff to Ubuntu 12.04. A specific reason: Unity uses gconf in 12.04 for keyboard shortcuts and more; backporting the Unity gsettings work from 12.10 is not going to be easy & we’re still working through bugs from the gsettings transition any way.

      We are looking into offering gnome-control-center 3.6 & the latest ibus (which you’ll need for the feature mentioned in this blog) in the GNOME3 PPA but it needs some work before we want to expose it to the wider audience. Or wait for 13.04 which will include it without a PPA.

  2. Will the input method support work outside of GTK+ (and in-shell) applications?
    Such as QT, swing, motif and so on. Is IBus using the “traditional” X input method system?

  3. This is awesome and – being fully integrated – puts GNOME far ahead of the competition.

    I can’t wait to see switching between Latin and Devanagari in action!

  4. Hi,
    I can’t find any “Input Source” in Region & Lang setting(Ubuntu 12.10 beta, I changed Unity into Shell by “apt-get install gnome-shell”), did I missed some part?

    1. I believe Ubuntu ship their own Region & Language panel, so things are different there. Talk to them

  5. Hey, you definitely don’t use those “input methods”. Switching keyboard layout via menu? That’s ridiculous! And now it’s not possible to choose caps lock/alt+shift/ctrl+shift for switching layouts. That’s serious regression for those who use multiple layouts! Even more – gnome-settings-daemon overrides layout settings from xorg.conf, so one can’ use traditional method to select layouts/switching methods. Gnome team definitely does development wrong. Just follow simple rule – implement _working_ replacement before removing working feature!

    1. It is possible to use those modifiers for switching layouts. You can set the org.gnome.settings-daemon.peripherals.keyboard.input-sources-switcher setting to the desired modifier combination. gnome-tweak-tool has a UI for this setting.

      1. >>> “You can set the org.gnome.settings-daemon.peripherals.keyboard.input-sources-switcher setting”

        WTF is this registry-like ugliness? I don’t remember switching to Windows!

        The gnome-tweak-tool does not allow setting CapsLock as a layout switcher, which is the most common way of doing it. Also, there is no option to have separate layouts in different windows, and switching does not work in Activities overview mode.

        The Input sources is totally broken, and it’s gonna take a whole year to fix it! I’m sticking with KDE until next release.

      2. gnome-tweak-tool still misses an option to set caps_lock to be a layout group switcher!

        This is really handy and I used this feature on all of my computers, now I have to hold on some of them and not upgrade to GNOME 3.6, because I do not want to change such essential habit of mine 🙂

        I hope you will somehow resolve this, because others are right: it is really not good to drop features like this without a replacement.

        Otherwise I’m liking 3.6 a lot! 🙂

      3. The modification is unreasonably technical and why is the setting gone? I’ve been hanging on to the gnome-shell but a little more of these feature knock-downs and I’ve had it.

      4. Ok, there’s caps lock option after 3.6.3 update in gnome-tweak-tool, but it works terrible. Sometimes capslock switches layout, sometimes it turns capslock mode on, sometimes both… I’m very disappointed, it’s still non-functional. Bug #688350 is filed in gnome bugzilla

      5. I can’t find caps lock modifier for switching layouts in gnome-tweak-tool. I choosed Alt+Shift and find new bug – layouts does not switshing in the overview.

  6. So, no proper upgrade path from 3.4 layout switch shortcuts. Insane hidden options for setting the shortcuts for layout switch. No obvious way to set different layout for different windows… I think we finally got “final nail in the GNOME coffin”. Time to look for a fork, or entirely new DE.
    So long GNOME, and thanks for all the “fish”, your 3th version won’t be missed!

Comments are closed.