I added a new feature of a bridge hotkey in Fedora 15 and rawhide. You need IBus 184.108.40.20610419-7 or later for this feature.
# yum install --enablerepo=updates-testing ibus ibus-gnome3 # rpm -q ibus ibus-220.127.116.1110419-7.fc15
If you focus on a text application, the default keyboard layout (en) is enabled below.
And if you type Control + Space key, IBus switches the IBus engines from the default keyboard layout (en) to the first input method (anthy) below.
So you can toggle the default keyboard layout (en) and the input method (anthy) with Control + Space key. If you also choose another layout (jp), now Control + Space changes to toggle the layout (jp) and the input method (anthy) instead of the default layout (en) and the input method.
Then we will change the definition of Control + Space with this change. Previously we use Control + Space to toggle IM on and off. Now we use Control + Space to toggle the previous engine and next engine.
This way can show input methods and keyboard layouts in the same list on IBus icon status menu.
The hotkeys is defined in /usr/share/ibus/component/*.xml for each engnine. The following is the example of anthy and defines ‘Control + Space’ and ‘Zenkaku_Hankaku’ as hotkeys.
% cat /usr/share/ibus/component/anthy.xml <?xml version="1.0" encoding="utf-8"?> <component> <name>org.freedesktop.IBus.Anthy</name> <description>Anthy Component</description> ... snip <engines> <engine> <name>anthy</name> <language>ja</language> <icon>/usr/share/ibus-anthy/icons/ibus-anthy.png</icon> <layout>jp</layout> <longname>Anthy</longname> <description>Anthy Input Method</description> <icon_symbol>あ</icon_symbol> <hotkeys>Control+space,Zenkaku_Hankaku</hotkeys> </engine> </engines> </component>
The latest IBus also a menu item of “Keyboard Configuration” on IBus icon status menu, which can launch ‘gnome-control-center region’ for GNOME 3.
Currently I’m thinking a numbering for duplicated languages between keyboard layouts and input methods so that users recognize the different layouts.
BTW, In the previous thread, I introduced the icon symbol feature for IBus text icon but there is one update from that. We removed one API of ibus.EngineBase.set_icon_symbol(). We will use an special key name in IBusProperty for the input mode symbol instead.