3.6 Feature: IBus/XKB integration


The GNOME desktop has, up until now, supported different keyboard
layouts configuration and switching through the use of XKB and its
database of keyboard descriptions. What we have never explicitly
supported in the core desktop is input methods such as Pinyin for
Chinese or the various methods to input Japanese.

IBus[1] is a project that provides a framework to develop input
methods with several readily available on at least Fedora and Ubuntu.
This proposal aims at including explicit support for IBus in GNOME in
such a way that, from the user experience point of view, choosing to
use a German keyboard layout won't be that different from choosing a
Korean input method.

IBus is composed of several tools. Of those we are mainly interested
in using the core ibus-daemon and the various engines. In particular,
the goal is to not rely on its GUI tools to configure and interact
with it. Instead, gnome-control-center will be the GUI to add "input
sources" which are, for now, a simple tuple of XKB layout and IBus
engine that are known to work together and which will have a UI name
that is meaningful to users. gnome-shell presents the currently in use
input source and the other configured ones in a status indicator and
menu (what now is the keyboard status indicator). It will also present
the candidates window for the input method in use, if any, based on
Takao Fujiwara's work[3].

The feature wiki page[2] has some more details and links to initial
code to achieve this.

Of note here is that the current plan is to stop using libgnomekbd and
libxklavier in gnome-settings-daemon, gnome-control-center and
gnome-shell. Instead I intend to use the XKB API directly to configure
the X keyboard layout.

Reasons to drop libgnomekbd and libxklavier are that they rely on XKB
groups to switch between different layouts but XKB limits groups to
only 4. Also because the keybindings to switch groups are handled on
the X server directly and we are limited to just some choices which
causes us to currently have them separate from all the other
keybindings in GNOME.

Input/questions on this plan is very welcome.


[1] http://code.google.com/p/ibus/
[2] https://live.gnome.org/ThreePointFive/Features/IBus
[3] https://github.com/fujiwarat/ibus-gjs

[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]