2015年2月14日 星期六

[Archlinux][ibus] How to install cangjie 3 (倉頡) into ArchLinux

1. Install ibus
pacman -S ibus


2. Install input method package
pacman -S ibus-table-chinese

3. ibus settings
ibus-setup

4. Start ibus frame
ibus-daemon -d -x

5. Start at the booting time
Ref [4]

Reference:
  1. ibus-table-chinese 1.8.2-1 File List
  2. IBus
  3. [Archlinux] Execute the script at the booting time
  4. [ArchLinux][Cinnamon] Startup program after booting


Error :

 /usr/lib/ibus/ibus-engine-table --xml
Traceback (most recent call last):
  File "/usr/share/ibus-table/engine/main.py", line 279, in <module>
    main()
  File "/usr/share/ibus-table/engine/main.py", line 207, in main
    _locale = getdefaultlocale()[0].lower()
AttributeError: 'NoneType' object has no attribute 'lower'


Solution :
sudo vim /usr/share/ibus-table/engine/main.py +207
            #_locale = getdefaultlocale()[0].lower() <-- mark this line
            _locale = "UTF-8"


Execute /usr/lib/ibus/ibus-engine-table –xml
will show following xml.
    <engine>
        <name>table:cangjie3</name>
        <longname>CangJie3</longname>
        <language>zh</language>
        <license>Freely redistributable without restriction</license>
        <author>Roy Hiu-yeung Chan &lt;roy.h.y.chan@gmail.com&gt;</author>
        <icon>/usr/share/ibus-table/icons/cangjie3.svg</icon>
        <layout>us</layout>
        <symbol />
        <description>A IME under IBus Table</description>
        <setup>/usr/lib/ibus/ibus-setup-table --engine-name table:cangjie3</setup>
    </engine>


Paste above xml to following xml.
sudo vim /usr/share/ibus/component/table.xml
<?xml version='1.0' encoding='utf-8'?>
<!-- filename: table.xml -->
<component>
    <name>org.freedesktop.IBus.Table</name>
    <description>Table Component</description>
    <exec>/usr/lib/ibus/ibus-engine-table --ibus</exec>
    <version>1.9.2</version>
    <author>Yuwei Yu &lt;acevery@gmail.com&gt;</author>
    <license>LGPL</license>
    <homepage>http://code.google.com/p/ibus</homepage>
    <textdomain>ibus-table</textdomain>
    <observed-paths>
        <path>/usr/share/ibus-table/tables/</path>
    </observed-paths>
    <engines>
        <engine>
            <name>table:cangjie3</name>
            <longname>CangJie3</longname>
            <language>zh</language>
            <license>Freely redistributable without restriction</license>
            <author>Roy Hiu-yeung Chan &lt;roy.h.y.chan@gmail.com&gt;</author>
            <icon>/usr/share/ibus-table/icons/cangjie3.svg</icon>
            <layout>us</layout>
            <symbol />
            <description>A IME under IBus Table</description>
            <setup>/usr/lib/ibus/ibus-setup-table --engine-name table:cangjie3</setup>
        </engine>
    </engines>
</component>

Q:
ibus can’t swith input method

A:
When start “ibus-daemon -d -x” will activate following process.
/usr/lib/ibus/ibus-dconf
/usr/lib/ibus/ibus-ui-gtk3
/usr/lib/ibus/ibus-x11 --kill-daemon
/usr/lib/ibus/ibus-engine-simple
/usr/bin/python /usr/share/ibus-table/engine/main.py --ibus

0 意見:

張貼留言