fcitxのIMの設定順序をコマンドラインから変更するには

はじめに

fcitxのIMを変更するのには、fcitx-configtoolを使います。

f:id:kenhys:20150531033816p:plain

IMが複数あっても、キーを割り当てて切り替えられるという塩梅です。 キーボードのレイアウトが変わらないならそれであんまり困りません。

ただ、レイアウトの異なる外部キーボードをつないだりはずしたりというのが頻繁にあると、とたんに面倒になってきます。(直接入力はキーボードレイアウトを合わせておかないといけないため。もしかしたらいい方法があるのかもしれないがわかっていない。)

fcitx-remoteは?

fcitx-remoteというコマンドがあります。これには -sオプションがあって、指定したIMに直接切り替えることができます。 しかし、直接入力をこのレイアウトにというのはできません。

そこでfcitx-imlistを作りました

ようするにfcitx-configtoolがやっていることをコマンドラインから実現できればいいわけです。

そのためには、fcitx_input_method_get_imlistfcitx_input_method_set_imlist を呼んであげるといいことがわかりました。

というわけで、そのためのコマンドを作ってみました。 (世の中にそういうのすでにあるような気もするけど調べていない。)

それが、fcitx-imlistというわけです。 オプションを指定してあげると切り替えられるというようにしました。

% fcitx-imlist -s fcitx-keyboard-us,mozc

上記は、直接入力は英語キーボードで、日本語入力はmozcにするための設定方法です。 直接入力は日本語キーボードで、日本語入力はmozcに戻すためには次のようにします。

% fcitx-imlist -s fcitx-keyboard-jp,mozc

オプションに指定するインプットメソッドのリストは -l オプションで取得できます。

日本語キーボードとmozcと英語キーボードの設定があると次のように表示されます。

% fcitx-imlist -l
fcitx-keyboard-jp (キーボード - 日本語) [enabled]
mozc (Mozc) [enabled]
fcitx-keyboard-us (キーボード - 英語 (US)) [enabled]

ソースコードは、GitHubで公開しています。

github.com