Input sources in GNOME 3.7.4

I’ve been meaning for a while to write an update about the state of Input Sources and what we are doing for them in 3.7. Finally, I have some screenshots to show.

It is no secret that the input source integration we unveiled in 3.6 had some warts; we have pushed very hard to get it in, and there was just not enough time to get all things done (such as an OSD for switching input sources), or done entirely right (such as the UI for modifier-only shortcuts). Also, we’re all still learning about whats important in this area.

Our far-eastern users have taken to bugzilla and the mailing list to let us know what we got wrong. As they should – after all, they are the ones who use these input sources in their daily life, so they are the experts. We have listened, and in 3.7.4, input sources will be able to show options in the menu:

As you can see in this screenshot, the result is not ideal – the ‘Setup’ should really be accessed via the Region & Language Settings panel, not directly from the GNOME shell menu. But the blacklist we had in 3.6 was a really crude way to approach this problem; for 3.8, we will write guidelines for what kind of settings are appropriate to expose in the menu and work with the upstream authors of the ibus engines to implement these.

Another new thing that you can experience in 3.7.4 is the OSD I’ve mentioned above. Rui refactored the existing GNOME shell application switcher for it, so this did not require much new code in the end. It is triggered by the new ‘switch-input-source’ keyboard shortcut, which is bound to Super+space by default.

These are only the fixes that we have landed for 3.7.4. Next on the list is to bring back some form of ‘per-window mode’ and to move the UI for the Alt+Ctrl shortcut from gnome-tweak-tool back into the keyboard shortcuts panel where it belongs. We will also make these shortcuts work in the GNOME shell overview and in other contexts where they are today blocked due to a ‘modal’ context.

Later on, we hope to make the on-screen keyboard update its layout based on the current input source.


GNOME 3.7: what is happening now

Before Thanksgiving I’ve caused some uproar and made people doubt our incurable stubbornness by first announcing the release team decision to drop fallback mode (*), and then that we’re going to be looking at supported extensions as a replacement (*). Some have been calling this ‘classic’ mode – I’m using the term ‘legacy’ here, since ‘classic’ may raise some false expectations.

Two weeks have passed since that initial announcement, so I thought it would be a good idea to give an update on what we [1] have achieved so far.

GNOME Legacy

We’ve decided to use the gnome-shell-extensions repository as the place where we collect the extensions that will be part of this effort. If you configure with –enable-extensions=classic-mode, we will install a small set of extensions.

Since 3.6, GNOME shell has some infrastructure to operate in different ‘modes’. To see the list of supported modes, run:

gnome-shell –list-modes

and to run GNOME shell in a particular mode, you start it like this:

gnome-shell –mode=gdm

Different modes are what defines the GNOME shell appearance on the login screen and on the lock screen. Ever since we first introduced this functionality, the plan was to extend it to allow e.g. a ‘kiosk’ mode, which would reconfigure the shell in a way that is suitable for e.g. a point-of-sale kiosk. The one thing that is still missing is a way to load externally defined modes, since it is somewhat unrealistic to expect people to patch the installed GNOME shell JavaScript files.

Not anymore! In bug 689304, Florian has added support for external modes. And in bug 689285, Debarshi has added the necessary glue to install a desktop file that runs GNOME shell in classic mode and a session definition that includes this modified shell. The upshot is that we now have a ‘GNOME Legacy’ session appear in the session chooser in the login screen:

With all the infrastructure in place, we are now starting to fill out the legacy session. There is not too so much to see yet, but we do have a small extension to add the minimize and maximize buttons back. And in bug 688913, Florian has added a new key binding for a more traditional Alt-Tab switcher:

In another unexpected synergy, this could be built on top of independent work that Rui has done to reuse the switcher popup for an input source switcher.

Next up, we are looking at taskbar and main menu extensions.

Modern GNOME

Does all this attention on legacy mean that we no longer believe in GNOME 3 ? Of course not ! There’s plenty of great new stuff coming to GNOME 3.8. Here are some examples that have either landed already, or are in the process of landing:

A new settings panel to control privacy settings:

Configurable shell search:

Notification filtering:

A new power panel:

A new Photos app:

Among the many things that don’t screenshot so well, a noteworthy improvement that will land very soon: working key bindings in the overview (and elsewhere).  Super+M now toggles the message tray off as well as on.

[1] Florian, Debarshi and Giovanni have been doing all the work, I’m just egging them on…