2016年2月14日日曜日

IBus MozcからFcitx Mozcへの切り替え

インプットメソッドをIBusからFcitxに切り替えることにした。GNOMEと相性がいいことからIBusを使い続けてきたが、MozcのFcitx版(fcitx-mozc)がArch Linuxの公式リポジトリに登録されて久しいことや、以前の記事にも書いたが、ibus-mozcがそのうち廃止になるっぽいこと [1] 、Ubuntu 15.10でもデフォルトのIMがFcitxに切り替わったこと [2] 、とかを考えると、そろそろFcitxに切り替えようという気になった。こんな状況になっては、IBusを使っているのが悪あがきに思えてきた。

以前、Fcitxを使ってみたことはあるが、結局IBusにもどしてしまった。今回は、もうIBusに戻さないことに決めて、IBusとibus-mozcのアンインストール、及びFcitxとfcitx-mozcのインストールと初期設定を行ったので、その方法を記事にしておく。環境は、GNOME 3.18.2, jp 106(日本語キーボード)。

IBusの削除
IBusと関連パッケージのアンインストール
pacmanからIBusとIBusの関連パッケージをすべてアンインストールする。libibusはgnome-control-centerによって必要とされているため、削除できない。GNOME環境でなければ、libibusもアンインストールしていいと思う。
# pacman -Rsn ibus ninja zinnia ibus-mozc mozc

checking dependencies...
:: avahi optionally requires python2-dbus: avahi-discover

Packages (6) python2-dbus-1.2.0-5  ibus-1.5.12-1  ibus-mozc-2.17.2313.102-1  mozc-2.17.2313.102-1
             ninja-1.6.0-2  zinnia-0.06-4

Total Removed Size:  37.56 MiB

:: Do you want to remove these packages? [Y/n] y
:: Processing package changes...
(1/6) removing ibus-mozc                                            [#####################################] 100%
(2/6) removing mozc                                                 [#####################################] 100%
(3/6) removing zinnia                                               [#####################################] 100%
(4/6) removing ninja                                                [#####################################] 100%
(5/6) removing ibus                                                 [#####################################] 100%
(6/6) removing python2-dbus                    


IBus関連の設定の削除
IBus関連の設定を削除しておく。dconfエディターから、desktop -> ibus -> generalでpreload-enginesとversionの値を削除する。org -> gnome -> desktop -> input-sourcesでsourcesの値を削除する。




以上の設定で、インプットメソッドの設定が削除される。GNOMEの「設定」→「地域と言語」から、以下のように「入力ソース」が空欄になっていることで確認できる。



Arch WikiのFcitxのページによると、
GNOME はありとあらゆるインプットメソッドを破壊しようとするため、Fcitx を使うために、gnome-control-center から全ての入力ソースとインプットメソッドのホットキーを削除してから次のコマンドを実行して iBus との統合を無効にする必要があります:
とのことなので、入力ソースを削除できたら、以下のコマンドによってIBusとの統合を無効にする。
$ gsettings set org.gnome.settings-daemon.plugins.keyboard active false

Fcitxのインストールと設定
Fcitxのインストール
Fcitx関連のパッケージをインストールする。GNOMEならfcitx-imはfcitx-gtk3だけで良い気がするが、一応すべてインストールしておく。
# pacman -S fcitx fcitx-mozc fcitx-configtool fcitx-im
 
:: There are 5 members in group fcitx-im:
:: Repository community
   1) fcitx  2) fcitx-gtk2  3) fcitx-gtk3  4) fcitx-qt4  5) fcitx-qt5

Enter a selection (default=all): 
warning: skipping target: fcitx
resolving dependencies...
looking for conflicting packages...

Packages (13) qt5-base-5.5.1-9  qtchooser-53-2  xcb-util-image-0.4.0-1  xcb-util-wm-0.4.1-1  zinnia-0.06-4
              fcitx-4.2.9.1-1  fcitx-configtool-0.4.8-1  fcitx-gtk2-4.2.9.1-1  fcitx-gtk3-4.2.9.1-1
              fcitx-mozc-2.17.2313.102-1  fcitx-qt4-4.2.9.1-1  fcitx-qt5-1.0.5-1  fcitx-ui-light-0.1.3-3

Total Download Size:    33.81 MiB
Total Installed Size:  119.80 MiB

:: Proceed with installation? [Y/n] y
:: Retrieving packages ...
 xcb-util-wm-0.4.1-1-x86_64                 30.5 KiB  1017K/s 00:00 [#####################################] 100%
 xcb-util-image-0.4.0-1-x86_64              15.9 KiB  5.19M/s 00:00 [#####################################] 100%
 qtchooser-53-2-x86_64                      18.2 KiB  0.00B/s 00:00 [#####################################] 100%
 qt5-base-5.5.1-9-x86_64                    11.2 MiB  6.22M/s 00:02 [#####################################] 100%
 fcitx-4.2.9.1-1-x86_64                      7.0 MiB  6.28M/s 00:01 [#####################################] 100%
 fcitx-mozc-2.17.2313.102-1-x86_64          15.3 MiB  5.62M/s 00:03 [#####################################] 100%
 fcitx-ui-light-0.1.3-3-x86_64              27.0 KiB  8.80M/s 00:00 [#####################################] 100%
 fcitx-configtool-0.4.8-1-x86_64            35.1 KiB  11.4M/s 00:00 [#####################################] 100%
 fcitx-gtk2-4.2.9.1-1-x86_64                11.4 KiB  0.00B/s 00:00 [#####################################] 100%
 fcitx-gtk3-4.2.9.1-1-x86_64                12.0 KiB  0.00B/s 00:00 [#####################################] 100%
 fcitx-qt4-4.2.9.1-1-x86_64                124.4 KiB  7.14M/s 00:00 [#####################################] 100%
 fcitx-qt5-1.0.5-1-x86_64                   94.6 KiB  6.60M/s 00:00 [#####################################] 100%
(13/13) checking keys in keyring                                    [#####################################] 100%
(13/13) checking package integrity                                  [#####################################] 100%
(13/13) loading package files                                       [#####################################] 100%
(13/13) checking for file conflicts                                 [#####################################] 100%
(13/13) checking available disk space                               [#####################################] 100%
:: Processing package changes...
( 1/13) installing fcitx                                            [#####################################] 100%
You should at least install one of kcm-fcitx (For Qt/KDE users) or fcitx-configtool (For GTK+ users) to enable Fcitx configuration GUI.
Optional dependencies for fcitx
    enchant: for word predication support [installed]
    opencc: optional engine to do chinese convert
    gettext: for fcitx-po-parser [installed]
( 2/13) installing zinnia                                           [#####################################] 100%
( 3/13) installing fcitx-mozc                                       [#####################################] 100%
( 4/13) installing fcitx-ui-light                                   [#####################################] 100%
( 5/13) installing fcitx-configtool                                 [#####################################] 100%
Optional dependencies for fcitx-configtool
    fcitx-qt4: for some configuration windows [pending]
( 6/13) installing fcitx-gtk2                                       [#####################################] 100%
( 7/13) installing fcitx-gtk3                                       [#####################################] 100%
( 8/13) installing fcitx-qt4                                        [#####################################] 100%
( 9/13) installing xcb-util-wm                                      [#####################################] 100%
(10/13) installing xcb-util-image                                   [#####################################] 100%
(11/13) installing qtchooser                                        [#####################################] 100%
(12/13) installing qt5-base                                         [#####################################] 100%
Optional dependencies for qt5-base
    qt5-svg: to use SVG icon themes
    postgresql-libs: PostgreSQL driver [installed]
    libmariadbclient: MariaDB driver [installed]
    unixodbc: ODBC driver
    libfbclient: Firebird/iBase driver
    mtdev: evdev plugin [installed]
    gtk2: GTK2 plugin [installed]
(13/13) installing fcitx-qt5           

~/.xprofileを作成し、IMの設定を書く。~/.bashrcに書くのは良くないとのこと。
$ vim ~/.xprofile

export GTK_IM_MODULE=fcitx
export QT_IM_MODULE=fcitx
export XMODIFIERS=@im=fcitx
export DefaultIMModule=fcitx

再起動すると、Fcitxが有効になる。

Fcitxの設定
続いて、Fcitxの設定をする。アクティビティから「Fcitx 設定」を起動する。インストール直後、入力メソッドのタブは以下のようになっており、キーボードレイアウトがUSになってしまう。



まず、「キーボード - 英語 (US)」を「-」で削除する。さらに、「+」をクリックすると以下のように、キーボードレイアウトを選ぶ画面が出てくるので、「キーボード - 日本語」を選択「OK」をクリックして、日本語のキーボードレイアウトを追加する。



さらに、「^」で「キーボード - 日本語」の項目を一番上に持ってくる。



次に、「Fcitx 設定」の外観のタブから「状態パネルを隠すモード」の項目を「表示」に変更する。こうすることで所謂、「言語バー」が常に表示されるようになる。



ここまでの設定で、FirefoxなどではFcitxが機能するものの、GNOME TerminalなどのGNOME系のアプリケーションでは、Fcitxが機能しなかった。以下のように、dconfの設定を変更することで、GNOME系のアプリケーションでもFcitxが機能するようになる。
$ gsettings set org.gnome.settings-daemon.plugins.xsettings overrides "{'Gtk/IMModule':<'fcitx'>}"

ここまでで、基本的な設定は終わり。



Fcitxのカスタマイズ
さらに、Fcitxをカスタマイズする。まず、スキンをdarkに変更する。画面左下のLegacy Trayのアイコンを右クリックして、「スキン」から「dark」を選択する。



darkのスキンを選ぶことで、言語バーや変換候補の表示ウィンドウのバックグラウンドが黒色に変わる。



さらに、トップバーにFcitxを統合したい場合は、GNOME Shellの拡張機能のTopIconsをインストールする。TopIcons - GNOME Shell Extensionsからインストールできる。ページ左上のOFFボタンをクリックしてONボタンに変えると、自動でインストール、適用される。それなりに、メンテナンスされていてちゃんと動く拡張機能らしい。GNOMEのバージョンアップで、動かなくなる時が来るんじゃないかと心配ではあるが。


TopIconsがインストールされると、トップバーのトレイににFcitxのアイコンが表示されるようになる。日本語入力モードのときは、Mozcのアイコンが表示される。


入力モードを、日本語と直接入力間で切り替えると、Mozcのアイコンがついたり消えたりするので、トレイから現在の入力モードを確認することができる。したがって、「Fcitx 設定」から、状態パネルを隠すモードを「トレイアイコンが有効なときに隠す」に設定し、言語バーの表示を消しておく。



GNOMEのトップバーへの統合の際、GNOME Shell Extensionに頼らないといけないのは、Unityで採用されているAppIndicatorの機能を、GNOME Shellがサポートしていないことが原因らしい。そのような状況から、KStatusNotifierItem/AppIndicator Support - GNOME Shell Extensionsのような拡張機能も開発されているらしい。


参考:
[1] Deprecation of the iBus client code. #287
[2] 第395回 Ubuntu 15.10の日本語入力:Ubuntu Weekly Recipe|gihyo.jp … 技術評論社
[3] 第370回 Ubuntu 15.04と日本語入力:Ubuntu Weekly Recipe|gihyo.jp … 技術評論社
[4] 第381回 インプットメソッドの便利な機能:Ubuntu Weekly Recipe|gihyo.jp … 技術評論社
[5] Fcitx - ArchWiki

スポンサーリンク

スポンサーリンク

2 件のコメント:

  1. Just to let you know there's also https://github.com/wengxt/kimpanel-for-gnome-shell/

    返信削除
    返信
    1. Thank you for your comment!
      I'll try it if there is a trouble with the GNOME shell extension tool, which sometimes happens.
      The good thing is that the kimpanel package can be installed from AUR (aur/gnome-shell-extension-kimpanel-git)!

      削除