風来坊@真幸福知

出雲市 福知寺 行事ご案内 坐禅会 日記 テクノロジー English Zazen session technology Korean 한국어 참선 묵조선 텍놀로지

Ubuntu 18.04LTS ibus-mozc + ibus-hangul の日韓混在入力でハマる

普段使っているノートはUbuntu MATEのLTS. 16.04のサポートが終わるので18.04に更新したのだが, その後の調整でIM(Input Method)に悩んでしまった.

日本語と韓国語の両方の入力ができるように, iBusにmozc(Google日本語入力と同じやつ)とhangulを入れている. (パッケージ名 ibus-mozc, ibus-hangul)

IMの切り替え(mozc↔hangul)はCtrl+Space, mozcの中での英数↔ひらがなの切り替えはShift+Spaceを割り当てている.

Ubuntu 16.04では問題なかったのだが, 18.04に更新後にはiBusが時々死んでしまう問題が発生. いろいろやってみたらこんな感じで落ちるのが再現.

1. IMEをmozcにして入力する(英数文字でも日本語でも)

2. hangulに切り替えて(Ctrl+Space)ハングルを入力

3. mozcに切り替える

4. 日本語/英数の切り替え(Shift+Space)

=> ここでiBusが落ちる(パネルのアイコンが消える).

mozcは生きているらしく日本語は書ける(Shift+Spaceによる英数↔ひらがなの切り替えは可)が, hangulに切り替え(Ctrl+Space)はできない.

2と3の間で, mozcへの切り替え前のhangulの状態が英数文字入力の場合は問題ない. ハングル入力の状態でmozcに移行すると, その後のShift+Spaceで落ちてしまう.

ターミナルから

$ ibus-daemon -r -v

iBusを起動してメッセージを見ていると, 落ちるときにこういうのが出る.

IBUS:ERROR:ibusproperty.c:699:ibus_property_update: assertion failed: (priv->type == priv_update->type)

ソースをダウンロードして調べると, ibusproperty.cの該当行ではg_assertというGTKの関数が呼ばれている. 条件のtrue/falseをチェックしてfalseの場合にプログラムを止める関数らしい.

ところが, この行をコメントアウトしてコンパイルしてもやはり同じ問題が続く. で, ここら辺でお手上げとなる.

結局, 実用上は韓国語と日本語の間を頻繁に行き来して入力することはあまりないし, ショートカットキーでiBusを再起動できるようにしておけばまあ何とか耐えられる感じなので, そうやって付き合っておくことにする.

mozcとhangulを使ってる人はあまり多くないのかなぁ TT

MATEのPreferences/Keyboard Shortcutsで設定したショートカットは

Ctrl+Alt+i   ibus-deamon -rd  (iBusデーモンの再起動)

16.04のサポート終了で多くのユーザーが18.04に移行しているはず. このトラブルが解決されますように...

=祈=

(自分でできない他力本願なところが弱い)