BLFS‎ > ‎

9. IBus

created : 2010-02-20   updated : 2010-02-20
 
IBus - Intelligent Input Bus for Linux / Unix OS
 
Note : this page is mainly written in English with the exception of a few Chinese Characters.
 
Installing IBus to the BLFS system had been a time demanding process for me.  I had to resolve all the dependencies in the process of building.  This was not an obvious task and a lot of web surfing was involved.  Finally I figured out the correct dependency tree and build order for the project.
 
In order to have a functioning IBus,  I chose six commonly used packages from the project home page as target building candidates.  They are :
1. ibus : the core engine
2. ibus-table : support the table based input method such as cangjie(倉頡) and wubi(五筆)
3. ibus-table-cangjie : table for the cangje input method
4. ibus-pinyin : a phonetic input method (拼音) 
5. ibus-table-cantonese : Another phonetic input method in Cantonese
6. ibus-table-xingma : five strokes input method (五筆)
 
Here comes the dependency :
 
ibus depends on gnome-common, intltool, gtk-doc, docbook-xml, docbook-xsl,gconf, ORBit2,dbus,dbus-python,dbus-glib,iso-codes, PyGTK,pygobject,pycairo,pyxdg,libnotify,Notify-python,librsvg,libart_lgpl,popt,libxml2,libgsf,libcroco,gnome-python-desktop,python, gtk
 
ibus-table depends on pysqlite,sqlite
 
ibus-pinyin depends on libsigc
 
And this is one of the working building order :
 
0. gtk, python, libIDL, Pango, SQLite (previously built, see the firefox page)
1. gnome-common
2. intltool
3. docbook-xml
4. docbook-xsl
5. gtk-doc
6. ORBit2
7. gconf
8. dbus
9. dbus-glib
10. dbus-python
11. iso-codes
12. ibus
13. pygobject
14. pycairo
15. PyGTK
16. pyxdg
17. pysqlite
18. rebuild python (for pysqlite support)
19. ibus-table
20. ibus-table-cangjie
21. libnotify
22. Notify-python
23. libart_lgpl
24. popt
25. libxml2
26. libcroco
27. libgsf
28. librsvg
29. gnome-python-desktop (for pyrsvg support)
30. rebuild gtk (for librsvg support)
31. Libsigc
32. ibus-pinyin
33. ibus-table-cantonese
34. ibus-table-xingma
 
How I found out the above dependency and the build order would be another long story, which can be found in the appendix below.
 
Now, let's start the building process :
 
gnome-common-2.28.0
 
Get source :
 
Unpack :
tar xvf gnome-common-2.28.0.tar.bz2
cd gnome-common-2.28.0
 
Build and install :
 
time {
./configure --prefix=/usr &&
make &&
make install
} 2>&1 | tee log.txt
 
real    0m8.576s
user    0m0.820s
sys     0m5.004s
 
 
Tips : Nearly every build in this page will generate a log file.  Keep the building log for trouble shooting. 
 
 
intltool-0.40.6
Get Source :
 
Unpack :
 
 tar xvf intltool-0.40.6.tar.bz2
 cd intltool-0.40.6
 
Build and install :
 
time {
./configure --prefix=/usr &&
make &&
make install ;
} 2>&1 | tee log.txt
 
real    0m10.956s
user    0m1.272s
sys     0m7.416s
 
Install documentation :
 
install -v -m644 -D doc/I18N-HOWTO \
/usr/share/doc/intltool-0.35.5/I18N-HOWTO
 
docbook-xml-4.5
Get Source :
 
Unpack source :
 
mkdir docbook-xml-4.5
cd docbook-xml-4.5
unzip ../docbook-xml-4.5.zip
 
Install :
 
install -v -d -m755 /usr/share/xml/docbook/xml-dtd-4.5 &&
install -v -d -m755 /etc/xml &&
chown -R root:root . &&
cp -v -af docbook.cat *.dtd ent/ *.mod \
/usr/share/xml/docbook/xml-dtd-4.5
 
 
Create (or update) and populate the /etc/xml/docbook catalog file by running the following commands as the root user:
 
if [ ! -e /etc/xml/docbook ]; then
xmlcatalog --noout --create /etc/xml/docbook
fi &&
xmlcatalog --noout --add "public" \
"-//OASIS//DTD DocBook XML V4.5//EN" \
"http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" \
/etc/xml/docbook &&
xmlcatalog --noout --add "public" \
"-//OASIS//DTD DocBook XML CALS Table Model V4.5//EN" \
"file:///usr/share/xml/docbook/xml-dtd-4.5/calstblx.dtd" \
/etc/xml/docbook &&
xmlcatalog --noout --add "public" \
"-//OASIS//DTD XML Exchange Table Model 19990315//EN" \
"file:///usr/share/xml/docbook/xml-dtd-4.5/soextblx.dtd" \
/etc/xml/docbook &&
xmlcatalog --noout --add "public" \
"-//OASIS//ELEMENTS DocBook XML Information Pool V4.5//EN" \
"file:///usr/share/xml/docbook/xml-dtd-4.5/dbpoolx.mod" \
/etc/xml/docbook &&
xmlcatalog --noout --add "public" \
"-//OASIS//ELEMENTS DocBook XML Document Hierarchy V4.5//EN" \
"file:///usr/share/xml/docbook/xml-dtd-4.5/dbhierx.mod" \
/etc/xml/docbook &&
xmlcatalog --noout --add "public" \
"-//OASIS//ELEMENTS DocBook XML HTML Tables V4.5//EN" \
"file:///usr/share/xml/docbook/xml-dtd-4.5/htmltblx.mod" \
/etc/xml/docbook &&
xmlcatalog --noout --add "public" \
"-//OASIS//ENTITIES DocBook XML Notations V4.5//EN" \
"file:///usr/share/xml/docbook/xml-dtd-4.5/dbnotnx.mod" \
/etc/xml/docbook &&
xmlcatalog --noout --add "public" \
"-//OASIS//ENTITIES DocBook XML Character Entities V4.5//EN" \
"file:///usr/share/xml/docbook/xml-dtd-4.5/dbcentx.mod" \
/etc/xml/docbook &&
xmlcatalog --noout --add "public" \
"-//OASIS//ENTITIES DocBook XML Additional General Entities V4.5//EN" \
"file:///usr/share/xml/docbook/xml-dtd-4.5/dbgenent.mod" \
/etc/xml/docbook &&
xmlcatalog --noout --add "rewriteSystem" \
"http://www.oasis-open.org/docbook/xml/4.5" \
"file:///usr/share/xml/docbook/xml-dtd-4.5" \
/etc/xml/docbook &&
xmlcatalog --noout --add "rewriteURI" \
"http://www.oasis-open.org/docbook/xml/4.5" \
"file:///usr/share/xml/docbook/xml-dtd-4.5" \
/etc/xml/docbook
  
Create (or update) and populate the / etc/ xml/ catalog catalog file by running the following commands as the root user:
 
if [ ! -e /etc/xml/catalog ]; then
xmlcatalog --noout --create /etc/xml/catalog
fi &&
xmlcatalog --noout --add "delegatePublic" \
"-//OASIS//ENTITIES DocBook XML" \
"file:///etc/xml/docbook" \
/etc/xml/catalog &&
xmlcatalog --noout --add "delegatePublic" \
"-//OASIS//DTD DocBook XML" \
"file:///etc/xml/docbook" \
/etc/xml/catalog &&
xmlcatalog --noout --add "delegateSystem" \
"http://www.oasis-open.org/docbook/" \
"file:///etc/xml/docbook" \
/etc/xml/catalog &&
xmlcatalog --noout --add "delegateURI" \
"http://www.oasis-open.org/docbook/" \
"file:///etc/xml/docbook" \
/etc/xml/catalog
 
Backwards Compatibility :
 
for DTDVERSION in 4.1.2 4.2 4.3 4.4
do
xmlcatalog --noout --add "public" \
"-//OASIS//DTD DocBook XML V$DTDVERSION//EN" \
"http://www.oasis-open.org/docbook/xml/$DTDVERSION/docbookx.dtd" \
/etc/xml/docbook
xmlcatalog --noout --add "rewriteSystem" \
"http://www.oasis-open.org/docbook/xml/$DTDVERSION" \
"file:///usr/share/xml/docbook/xml-dtd-4.5" \
/etc/xml/docbook
xmlcatalog --noout --add "rewriteURI" \
"http://www.oasis-open.org/docbook/xml/$DTDVERSION" \
"file:///usr/share/xml/docbook/xml-dtd-4.5" \
/etc/xml/docbook
xmlcatalog --noout --add "delegateSystem" \
"http://www.oasis-open.org/docbook/xml/$DTDVERSION/" \
"file:///etc/xml/docbook" \
/etc/xml/catalog
xmlcatalog --noout --add "delegateURI" \
"http://www.oasis-open.org/docbook/xml/$DTDVERSION/" \
"file:///etc/xml/docbook" \
/etc/xml/catalog
done
 
 
 
docbook-xsl-1.71.1
Get source :
 
Unpack source :
tar xvf docbook-xsl-1.71.1.tar.bz2
tar xvf docbook-xsl-doc-1.71.1.tar.bz2
cd docbook-xsl-1.71.1
 
 
Install :
 
install -v -m755 -d /usr/share/xml/docbook/xsl-stylesheets-1.71.1 &&
cp -v -R VERSION common eclipse extensions fo highlighting html \
htmlhelp images javahelp lib manpages params profiling \
slides template tools website wordml xhtml \
/usr/share/xml/docbook/xsl-stylesheets-1.71.1 &&
install -v -m644 -D README \
/usr/share/doc/docbook-xsl-1.71.1/README.XSL &&
install -v -m755 RELEASE-NOTES* NEWS* \
/usr/share/doc/docbook-xsl-1.71.1
 
 
Install documentation :
 
cp -v -R doc/* /usr/share/doc/docbook-xsl-1.71.1
 
 
Create (or append) and populate the XML catalog file using the following commands as the root user:
 
if [ ! -d /etc/xml ]; then install -v -m755 -d /etc/xml; fi &&
if [ ! -f /etc/xml/catalog ]; then
xmlcatalog --noout --create /etc/xml/catalog
fi &&
xmlcatalog --noout --add "rewriteSystem" \
"http://docbook.sourceforge.net/release/xsl/1.71.1" \
"/usr/share/xml/docbook/xsl-stylesheets-1.71.1" \
/etc/xml/catalog &&
xmlcatalog --noout --add "rewriteURI" \
"http://docbook.sourceforge.net/release/xsl/1.71.1" \
"/usr/share/xml/docbook/xsl-stylesheets-1.71.1" \
/etc/xml/catalog &&
xmlcatalog --noout --add "rewriteSystem" \
"http://docbook.sourceforge.net/release/xsl/current" \
"/usr/share/xml/docbook/xsl-stylesheets-1.71.1" \
/etc/xml/catalog &&
xmlcatalog --noout --add "rewriteURI" \
"http://docbook.sourceforge.net/release/xsl/current" \
"/usr/share/xml/docbook/xsl-stylesheets-1.71.1" \
/etc/xml/catalog
 
 
 
gtk-doc-1.13
Get source :
 
unpack and go to the source tree :
 
 tar xvf gtk-doc-1.13.tar.bz2
 cd gtk-doc-1.13
 
Build and install :
 
time {
./configure --prefix=/usr --localstatedir=/var/lib &&
make &&
make install ;
} 2>&1 | tee log.txt
 
real    1m2.558s
user    0m6.900s
sys     0m48.275s
 
 
ORBit2-2.14.17
Get source :
  
(Note : Version 2.14.7 as suggested in BLFS 6.3 didn't pass the compiler, so I used 2.14.17 instead)
 
Unpack :
 
tar xvf ORBit2-2.14.17.tar.bz2
cd ORBit2-2.14.17
 
Build and install :
 
time {
./configure --prefix=/usr \
--sysconfdir=/etc/gnome &&
make &&
make install ;
} 2>&1 | tee log.txt
 
real    5m36.751s
user    0m49.267s
sys     4m31.989s
 
 
GConf-2.18.0.1
 
unpack source :
 
tar xvf GConf-2.18.0.1.tar.bz2
cd GConf-2.18.0.1
 
build and install :
 
time {
./configure --prefix=$(pkg-config --variable=prefix ORBit-2.0) \
--sysconfdir=/etc/gnome \
--libexecdir=$(pkg-config \
--variable=prefix ORBit-2.0)/lib/GConf \
--mandir=$(pkg-config \
--variable=prefix ORBit-2.0)/share/man &&
make &&
make install ;
} 2>&1 | tee log.txt
 
real    5m43.717s
user    0m47.427s
sys     4m28.557s
 
 
dbus-1.2.20
Get source :
 
Unpack source :
 
tar xvf dbus-1.2.20.tar.gz
cd dbus-1.2.20
 
Build and install :
 
time {
    ./configure --prefix=/usr &&
    make &&
    make install ;
} 2>&1 | tee log.txt
 
real    3m53.988s
user    0m32.174s
sys     3m1.351s
 
 
To complete the installation, generate a uuid for the system :
dbus-uuidgen --ensure
 
 
dbus-glib-0.84
Get source :
 
Unpack source :
 
tar xvf dbus-glib-0.84.tar.gz
cd dbus-glib-0.84
 
Build and install :
 
time {
    ./configure --prefix=/usr &&
    make &&
    make install ;
} 2>&1 | tee log.txt
 
 
real    1m52.557s
user    0m15.705s
sys     1m28.042s
 
 
dbus-python-0.83.0
Get source :
 
Unpack source :
 
tar xvf dbus-python-0.83.0.tar.gz
cd dbus-python-0.83.0
 
Build and install :
 
time {
    ./configure --prefix=/usr &&
    make &&
    make install ;
} 2>&1 | tee log.txt
 
 
real    1m50.055s
user    0m12.797s
sys     1m29.458s
 
 
iso-codes-3.11
Get source :
 
Unpack source :
 
tar xvf iso-codes-3.11.tar.bz2
cd iso-codes-3.11
 
Build and install :
 
time {
./configure --prefix=/usr &&
make &&
make pkgconfigdir=/usr/lib/pkgconfig install ;
} 2>&1 | tee log.txt
 
 
real    2m8.119s
user    0m13.833s
sys     1m29.326s
 
 
ibus-1.2.0.20100111
 
Finally, we could start building the first package of ibus.
 
Get source :
 
Unpack :
 
tar xvf ibus-1.2.0.20100111.tar.gz
cd ibus-1.2.0.20100111
 
Build and install:
 
time {
 ./autogen.sh --prefix='/usr' --sysconfdir='/etc' --libdir='/usr/lib' --enable-gtk-doc &&
 make &&
 make install ;
} 2>&1 | tee log.txt
 
real    5m6.557s
user    1m21.729s
sys     3m21.093s
 
 
pygobject-2.20.0
Get source :
(Note : newer version required newer glib, which I didn't have.)
 
Unpack :
 
tar xvf pygobject-2.20.0.tar.bz2
cd pygobject-2.20.0
 
Build and install :
 
time {
./configure --prefix=/usr &&
make &&
make install ;
} 2>&1 | tee log.txt
 
 
real    2m11.615s
user    0m17.241s
sys     1m41.546s
 
 
pycairo-1.8.8
Get source :
 
Unpack source :
 
tar xvf pycairo-1.8.8.tar.gz
cd pycairo-1.8.8
 
Build and install :
 
time {
./configure --prefix=/usr &&
make &&
make install ;
} 2>&1 | tee log.txt
 
 
real    0m49.195s
user    0m5.856s
sys     0m38.458s
 
 
 
pygtk-2.14.1
Get source :
 
Unpack source :
 
tar xvf pygtk-2.14.1.tar.gz
cd pygtk-2.14.1
 
Build and install :
 
time {
./configure --prefix=/usr &&
make &&
make install ;
} 2>&1 | tee log.txt
 
real    4m14.532s
user    1m18.621s
sys     2m28.413s
 
 
pyxdg-0.19
Get source :
 
Unpack source :
 
tar xvf pyxdg-0.19.tar.gz
cd pyxdg-0.19
 
Build and install :
 
time {
python setup.py install
} 2>&1 | tee log.txt
 
 
real    0m1.786s
user    0m0.108s
sys     0m0.528s
 
 
pysqlite-2.5.6
Get source :
 
Unpack source
 
tar xvf pysqlite-2.5.6.tar.gz
cd pysqlite-2.5.6
Build and install :
 
time {
python setup.py install
} 2>&1 | tee log.txt
 
 
real    0m8.915s
user    0m0.856s
sys     0m6.164s
 
 
In order to have sqlite3 support in python, we must build pysqlite before building python.  Since python was previously built, we must rebuild it now :
 
python-2.6.4
 
Get source : (should already done previously)
 
Build and install :
time {
sed -i "s/ndbm_libs = \[\]/ndbm_libs = ['gdbm', 'gdbm_compat']/" \
     setup.py &&
./configure --prefix=/usr --enable-shared &&
make &&
make install
} 2>&1 | tee log.txt
 
real    10m8.294s
user    1m38.514s
sys     7m17.715s
 
 
We don't have to rebuild the documentation, but in case you want to know the instruction, see here.
 
 
ibus-table-1.2.0.20091113
 
Unpack source :
 
tar xvf ibus-table-1.2.0.20091113.tar.gz
cd ibus-table-1.2.0.20091113
 
 
Build and install :
 
time {
./configure --prefix=/usr &&
make &&
make install ;
} 2>&1 | tee log.txt
 
 
real    0m27.604s
user    0m3.252s
sys     0m20.241s
 
 
ibus-table-cangjie-1.2.0.20100119
Get source :
 
Unpack source :
 
tar xvf ibus-table-cangjie-1.2.0.20100119.tar.gz
cd ibus-table-cangjie-1.2.0.20100119
 
Build and install :
 
time {
./configure --prefix=/usr &&
make &&
make install ;
} 2>&1 | tee log.txt
 
 
real    2m5.926s
user    1m19.929s
sys     0m42.551s
 
 
At this point, we would have changjie input method ready, but the language panel didn't show up, so go on with the installation.
 
The language panel is a python program which depends on notify-python, which in turn, depends on libnotify.
 
 
libnotify-0.4.5
Get source :
 
Unpack source :
 
tar xvf libnotify-0.4.5.tar.gz
cd libnotify-0.4.5
 
Build and install :
 
time {
./configure --prefix=/usr &&
make &&
make install ;
} 2>&1 | tee log.txt
 
 
real    2m37.899s
user    0m18.841s
sys     1m58.423s
 
 
notify-python-0.1.1
Get source :
Unpack :
 
tar xvf notify-python-0.1.1.tar.bz2
cd notify-python-0.1.1
 
The original source didn't support the function attach_to_status_icon().
Apply a workaround suggested in http://trac.galago-project.org/ticket/121 :
 
rm src/pynotify.c
 
(The file removed above would be automatically regenerated. )
 
Build and install :
 
time {
./configure --prefix=/usr &&
make &&
make install ;
} 2>&1 | tee log.txt
 
real    1m16.380s
user    0m9.253s
sys     1m2.136s
 
 
At this point we are almost complete.  We have some working input methods and the language panel is showing up.
But the icons in the panel are not correctly shown.  This is because the icons in ibus are in SVG format. 
This requires librsvg to be built.  SVG stands for scalable vector graphics.  This is an xml format and hence librsvg depends on libxml.
 
To have full SVG support, we have to build libart_lgpl, popt, libxml2, libcroco, libgsf before building librsvg.
 
 
 
libart_lgpl-2.3.20
 
unpack :
 
tar xvf libart_lgpl-2.3.20.tar.bz2
cd libart_lgpl-2.3.20
 
Build and install :
 
time {
./configure --prefix=/usr &&
make &&
make install ;
} 2>&1 | tee log.txt
 
 
real    2m16.071s
user    0m9.165s
sys     0m56.188s
 
 
popt-1.15
 
Unpack source :
 
tar xvf popt-1.15.tar.gz
cd popt-1.15
 
Build and install :
 
time {
./configure --prefix=/usr --libdir=/usr/lib &&
make &&
sed -i "s@\(^libdir='\).*@\1/usr/lib'@g" libpopt.la &&
sed -i "s@\(^libdir='\).*@\1/usr/lib'@g" .libs/libpopt.lai &&
make usrlibdir=/usr/lib install ;
} 2>&1 | tee log.txt
 
real    1m8.707s
user    0m4.684s
sys     0m28.290s
 
 
libxml2-2.7.6
 
Unpack :
 
tar xvf libxml2-2.7.6.tar.gz
cd libxml2-2.7.6
 
Build and install :
 
time {
./configure --prefix=/usr &&
make &&
make install ;
} 2>&1 | tee log.txt
 
real    8m17.792s
user    1m42.034s
sys     5m59.770s
 
libgsf-1.14.16
 
Unpack source :
 
tar xvf libgsf-1.14.16.tar.bz2
cd libgsf-1.14.16
 
Build and install :
 
time {
./configure --prefix=/usr --sysconfdir=/etc/gnome &&
make &&
make install ;
} 2>&1 | tee log.txt
 
real    3m3.641s
user    0m23.541s
sys     2m27.153s
 
 
 
Unpack :
 
tar xvf libcroco-0.6.2.tar.bz2
cd libcroco-0.6.2
 
Build and install :
 
time {
./configure --prefix=/usr &&
make &&
make install &&
install -v -m755 -d /usr/share/doc/libcroco-0.6.2/examples &&
install -v -m644 README docs/usage.txt /usr/share/doc/libcroco-0.6.2 &&
install -v -m644 docs/examples/*.c /usr/share/doc/libcroco-0.6.2/examples ;
} 2>&1 | tee log.txt
 
real    2m39.567s
user    0m21.433s
sys     2m11.108s
  
librsvg-2.26.0
Get source :
 
Unpack source :
 
tar xvf librsvg-2.26.0.tar.bz2
cd librsvg-2.26.0
 
Build and install :
 
time {
./configure --prefix=/usr --enable-svgz --enable-mozilla-plugin=no &&
make &&
make install ;
} 2>&1 | tee log.txt
 
real    3m22.570s
user    0m28.850s
sys     2m49.511s
 
 
We still need two more packages to support the SVG format, gnome-python-desktop (which provides rsvg module) and gtk (rebuild).
 
 
gnome-python-desktop-2.29.1
Get source :
 
Unpack :
 
tar xvf gnome-python-desktop-2.29.1.tar.bz2
cd gnome-python-desktop-2.29.1
 
Build and install : (We need rsvg only, hence disable all then enable rsvg).
 
time {
./configure --prefix=/usr --disable-allbindings --enable-rsvg &&
make &&
make install ;
} 2>&1 | tee log.txt
 
real    1m33.056s
user    0m8.461s
sys     1m8.248s
 
 
Now I have built all packages required for SVG support.  But unfortunately, in order to build firefox, I had built gtk previously.
The makefile of gtk was clever enough to omit the SVG support since I didn't have librsvg built.   I had to rebuild gtk now to enable SVG support.
 
 
gtk+-2.18.5
Get source : (should have done previously)
 
Detailed instruction described in this link.  Below I just repeat the build instruction.
 
Build and install :
 
time {
./configure --prefix=/usr --sysconfdir=/etc &&
make install &&
install -v -m755 -d /usr/share/doc/gtk+-2.18.5/{faq,tutorial} &&
cp -v -R docs/faq/html/* /usr/share/doc/gtk+-2.18.5/faq &&
cp -v -R docs/tutorial/html/* /usr/share/doc/gtk+-2.18.5/tutorial &&
install -v -m644 docs/*.txt /usr/share/doc/gtk+-2.18.5
} 2>&1 | tee log.txt
 
 
real    46m11.009s
user    6m30.308s
sys     36m16.164s
 
If you are a changjie user like me, you can stop building here and go directly to the configuration section.
Since a lot of user is using pinyin,  I describe the building procedure below.
ibus-pinyin depends on libsigc, which would be the next package to be built.
 
 
libsigc++-2.2.3
 
Unpack :
 
tar xvf libsigc++-2.2.3.tar.bz2
cd libsigc++-2.2.3
 
Build and install :
 
time {
./configure --prefix=/usr &&
make &&
make install ;
} 2>&1 | tee log.txt
 
real    4m42.642s
user    0m28.486s
sys     3m39.982s
 
 
 
Unpack source :
 
tar xvf ibus-pinyin-1.2.99.20100212.tar.gz
cd ibus-pinyin-1.2.99.20100212
Build and install :
 
time {
./configure --prefix=/usr &&
make &&
make install ;
} 2>&1 | tee log.txt
 
real    2m1.793s
user    0m13.113s
sys     1m36.166s
 
Before going to the configuration section, I built two more input methods for evaluation purpose. The Cantonese input method and the five stokes input method.
 
 
ibus-table-cantonese-1.2.0.20100107
 
Unpack :
 
tar xvf ibus-table-cantonese-1.2.0.20100107.tar.gz
cd ibus-table-cantonese-1.2.0.20100107
 
Build and install :
 
time {
./configure --prefix=/usr &&
make &&
make install ;
} 2>&1 | tee log.txt
 
 
 
real    0m18.960s
user    0m6.788s
sys     0m8.945s
 
 
ibus-table-xingma-1.2.0.20100111
Get source :
 
Unpack :
 
tar xvf ibus-table-xingma-1.2.0.20100111.tar.gz
cd ibus-table-xingma-1.2.0.20100111
 
Build and install :
time {
./configure --prefix=/usr &&
make &&
make install ;
} 2>&1 | tee log.txt
 
real    1m30.259s
user    0m49.423s
sys     0m35.898s
 
 
Configuration :
 
The assumptions here is you have read and followed the instruction in these pages :
 
1. Add ibus-daemon to the startup script of fluxbox (vi ~/.fluxbox/startup):
 
(add the following before the line exec fluxbox)
 
ibus-daemon --xim -d
 
2. If you have created an cxterm alias in ~/.bashrc,  remove it.
 
vi ~/.bashrc
 
Find and remove the line :
alias cxterm="LANG=zh_TW.utf8 xterm -name cxterm"
 
3. Instead of using command alias, create a cxterm script in /usr/bin
cat >/usr/bin/cxterm <<"EOF"
export LANG=zh_TW.utf8
export XMODIFIERS=@im=ibus
export GTK_IM_MODULE=xim
xterm -name cxterm &
EOF
 
Make it executable :
chmod 755 /usr/bin/cxterm
 
I still keep xterm as English console, because searching web for English error message is sometime more efficient.
If I want to start application that support Chinese, I start cxterm, and then start application such as vi and firefox inside cxterm.
Then I can input Chinese in vi or firefox.
 
4. Restart computer, startx, start cxterm, execute ibus-setup inside cxterm.
 
ibus-setup
 
 
5. You can always check the ibus process status :
 
ps -ef | grep ibus
 
foo 15735 15518  0 11:30 pts/3    00:00:17 /usr/bin/ibus-daemon --xim
foo 20037 15735  0 12:58 pts/3    00:00:00 /usr/libexec/ibus-gconf
foo 20039 15735  0 12:58 pts/3    00:00:06 python /usr/share/ibus/ui/gtk/main.py
foo 20041     1  0 12:58 pts/3    00:00:00 /usr/libexec/ibus-x11 --kill-daemon
foo 20042 15735  0 12:58 pts/3    00:00:01 python /usr/share/ibus-anthy/engine/main.py --ibus
 
6. Make all necessary setting inside the GUI of ibus-setup (select hotkey, preferred input method)
 
7. Restart X (by pressing ctrl-alt-backspace),  or restart computer if you want a more clean environment.
 
8. Start cxterm again, you should be able to input Chinese inside cxterm and vi
 
9. start firefox inside cxterm, you should be able to input Chinese inside firefox.
 
firefox &
 
 
Appendix :
 
 
End
子網頁 (1): IBus dependency
Comments