Difference between revisions of "IBus"

From ArchWiki
Jump to: navigation, search
m (LibreOffice)
m (Make summary easier to read (less verbosity))
Line 1: Line 1:
[[Category:Internationalization (English)]]
[[Category:Internationalization (English)]]
[http://en.wikipedia.org/wiki/Intelligent_Input_Bus IBus] ("Intelligent Input Bus") is an [http://en.wikipedia.org/wiki/Input_method input method framework], a system that facilitates entry of foreign characters. It fills a role similar to that of [[SCIM|Smart Common Input Method]] and [[UIM|uim]].  
[http://en.wikipedia.org/wiki/Intelligent_Input_Bus IBus] ("Intelligent Input Bus") is an [http://en.wikipedia.org/wiki/Input_method input method framework], a system for entering foreign characters. IBus functions similarly to [[SCIM]] and [[UIM]].  

Revision as of 16:32, 10 November 2011

This template has only maintenance purposes. For linking to local translations please use interlanguage links, see Help:i18n#Interlanguage links.

Local languages: Català – Dansk – English – Español – Esperanto – Hrvatski – Indonesia – Italiano – Lietuviškai – Magyar – Nederlands – Norsk Bokmål – Polski – Português – Slovenský – Česky – Ελληνικά – Български – Русский – Српски – Українська – עברית – العربية – ไทย – 日本語 – 正體中文 – 简体中文 – 한국어

External languages (all articles in these languages should be moved to the external wiki): Deutsch – Français – Română – Suomi – Svenska – Tiếng Việt – Türkçe – فارسی

IBus ("Intelligent Input Bus") is an input method framework, a system for entering foreign characters. IBus functions similarly to SCIM and UIM.


# pacman -S ibus

Additionally, to enable IBus for Qt applications, install the ibus-qt library:

# pacman -S ibus-qt 

Input Method Engines

You will need at least one input method, corresponding to the language you wish to type. Available input methods include:

  • ibus-anthy: A Japanese IME, based on Template:Package Official.
  • ibus-pinyin: An intelligent Chinese Phonetic IME for Hanyu pinyin and Zhuyin (Bopomofo) users. Designed by IBus main author and has many advance features such as English spell checking.
  • ibus-chewing: An intelligent Chinese Phonetic IME for Zhuyin (Bopomofo) users, based on Template:Package Official.
  • ibus-hangul: A Korean IME, based on Template:Package Official.
  • ibus-unikey: An IME for typing Vietnamese characters.
  • ibus-table: An IME that accommodates table-based IMs.
  • ibus-m17n: A m17n IME which allows input of many languages using the input methods from m17n-db.

To see all available input methods:

$ pacman -Ss ^ibus-*

Others packages are also available in the AUR.

Initial Setup

Now, run ibus-setup (as the user who will use IBus):

$ ibus-setup

It will start the daemon and give you this message:

IBus has been started! If you cannot use IBus, please add below lines in $HOME/.bashrc, and relogin your desktop.
  export GTK_IM_MODULE=ibus
  export XMODIFIERS=@im=ibus
  export QT_IM_MODULE=ibus
Note: Although IBus uses a daemon, it is not the sort of daemon managed by the DAEMONS array in /etc/rc.conf: it runs as an ordinary user and will be started for you when you login.
Note: If, however, ibus is not autostarted upon login, then move the “export …” lines above to $HOME/.xprofile instead, and append this line to the same file: “ibus-daemon -x -d”, and relogin your desktop.

You will then see a configuration screen; you can access this screen whenever IBus is running by right-clicking the icon in the system tray and choosing "Preferences". See Configuration.

If IBus doesn't work in Qt/KDE applications, ensure that the ibus-qt library is installed and define IBus as the default IME in the Qt configuration editor:

$ qtconfig

In "Interface" -> "Default Input Method", select "ibus" instead of "xim".


Note: Obviously, you need to have East Asian fonts installed if you want to enter Chinese, Japanese, Korean or Vietnamese characters.

The default "General" settings should be fine, but go to "Input Methods" and select your input method(s) in the drop down box, then press "Add". You can use multiple input methods if you wish. Once IBus is set up, you can press Ctrl+Space to use it (multiple times to cycle through available input methods). IBus will remember which input method you are using in each window, so you will have to reactivate it for each new window. You can override this behavior by right clicking the system tray icon, selecting "Preferences", and going to the "Advanced" tab.

Tips and tricks

Pinyin usage

When using ibus-pinyin,

  • First type the pinyin (sans tones) for the characters you wish to enter.
  • Press Up and Down repeatedly to select a character (going on to the next page if necessary).
  • Press Space to use a character.
  • You can also use PageUp or PageDown to scroll pages, and use the number keys 1-5 to select the character you need.
  • You can enter multiple characters that form a word or phrase at a time (such as "zhongwen" to enter "中文"). ibus-pinyin will remember which characters you type most frequently and over time make suggestions that are more tuned to your typing profile.



IBus main interface is currently only available in GTK, but Template:Package Official provides a native Qt/KDE input interface. However, Kimpanel currently doesn't work out-of-the-box on Arch Linux (partially because of FS#19580) and requires additional configuration.

To install Kimpanel:

# pacman -S kdeplasma-addons-applets-kimpanel

Download the kdeplasma-addons source package for the KDE version you are using and extract it.

$ wget -c http://download.kde.org/stable/4.x.x/src/kdeplasma-addons-4.x.x.tar.bz2
$ tar -xvf kdeplasma-addons-4.x.x.tar.bz2

Copy the missing files on the system:

# mkdir /usr/share/ibus/ui/qt
# cp kdeplasma-addons-4.x.x/applets/kimpanel/backend/ibus/panel.py /usr/share/ibus/ui/qt/panel.py
# cp kdeplasma-addons-4.x.x/applets/kimpanel/backend/ibus/qtpanel.xml /usr/share/ibus/component/qtpanel.xml

Edit Template:Codeline:

#!/usr/bin/env python2
# vim:set et sts=4 sw=4:

Edit Template:Codeline:

<?xml version=1.0 encoding=utf-8?>
<!-- filename: qtpanel.xml -->
    <description>Qt Panel Component</description>
    <author>Wang Hoi <zealot.hoi@gmail.com></author>

Use the existing Template:Codeline file as a template and edit it:

# cp /usr/lib/ibus/ibus-ui-gtk /usr/lib/ibus/ibus-ui-qt
# ibus - The Input Bus
# Copyright (c) 2007-2010 Peng Huang <shawn.p.huang@gmail.com>
# Copyright (c) 2007-2010 Red Hat, Inc.
# This library is free software; you can redistribute it and/or
# modify it under the terms of the GNU Lesser General Public
# License as published by the Free Software Foundation; either
# version 2 of the License, or (at your option) any later version.
# This library is distributed in the hope that it will be useful,                                                                              
# but WITHOUT ANY WARRANTY; without even the implied warranty of                                                                               
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the                                                                                
# GNU Lesser General Public License for more details.                                                                                          
# You should have received a copy of the GNU Lesser General Public                                                                             
# License along with this program; if not, write to the                                                                                        
# Free Software Foundation, Inc., 59 Temple Place, Suite 330,                                                                                  
# Boston, MA  02111-1307  USA                                                                                                                  
export IBUS_PREFIX=/usr
export IBUS_DATAROOTDIR=${prefix}/share
export IBUS_LOCALEDIR=${datarootdir}/locale

exec python2 /usr/share/ibus/ui/qt/panel.py $@

Finally, add the Template:Codeline widget to your taskbar and launch Template:Codeline:

$ ibus-setup


If anyone has any issues with iBus and rxvt-unicode, the following steps should solve it.

Add the following to your .Xdefaults (possibly not required -- try first without):

  URxvt.inputMethod: ibus
  URxvt.preeditType: OnTheSpot,None

And start ibus with:

  ibus-daemon --xim

If you start ibus-daemon automatically (e.g. in ~/.xinitrc or ~/.xsession) but used to use `ibus-daemon &' without the `--xim' option, make sure to kill the existing process before testing the new command.

GTK applications

Some users have had problems using Input Methods with GTK applications, because it seems that the gtk.immodules file can't be found. Adding

 export GTK_IM_MODULE_FILE=/etc/gtk-2.0/gtk.immodules
 (currently changed to)
 export GTK_IM_MODULE_FILE=/etc/gtk-3.0/gtk.immodules

in addition to the three lines above in your $HOME/.bashrc seems to fix the problem.

Chinese Input

If you encounter problems when using chinese input, check your locale settting. For example in Hong Kong, export LANG=zh_HK.utf8.


there are large revisions after ibus1.4, you might not be able to input chinese words with ibus-pinyin or ibus-sunpinyin, which are written in C. So the solution is:

Recompile ibus-sunpinyin in ABS by yourself. or

Install ibus-googlepinyin, which is developed in python.

first make sure yaourt is installed, then

  sudo yaourt -S ibus-googlepinyin.

to make the ibus start with gnome.

add this in ~/.profile and restart the gnome.

   export GTK_IM_MODULE=ibus
   export XMODIFIERS=@im=ibus
   export QT_IM_MODULE=ibus
   ibus-daemon -d -x

chinese users can refer the page for detailed solution for this bug. [1]


LibreOffice (and OpenOffice) ship with an old libc version which causes ibus to fail to load. To fix this, remove the shipped libstdc++.so.6 at "/usr/lib/libreoffice/basis-link/ure-link/lib/libstdc++.so.6".

If IBus does load but doesn't see LibreOffice as an input window, put "export OOO_FORCE_DESKTOP="gnome"" in your $HOME/.xprofile, even if you are using KDE. This is due to a bug with new KDE integration code.