風来坊@真幸福知

風来坊@真幸福知

始まりは坐禅会のご案内, 思いつくことを何でも書いていたら星空系に... Started with Zazen session info. now almost astrophotos. 시작이 참선회 안내, 이제 별하늘 사진들.

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に移行しているはず. このトラブルが解決されますように...

=祈=

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

 

追記(2021/2/18):

コメントでUbuntu 20.10では問題なく日本語・韓国語入力ができるとのお話. それで, もしかしたらibus-hangulの最新版なら治ってるのかな?ということで試してみた.

GitHub ibus-hangul: https://github.com/libhangul/ibus-hangul/releases/tag/1.5.4

最新版の1.5.4のソース(*.tgz)をダウンロードしてインストール.

$ sh autogen.sh     #これでconfigureやMakefileが生成される

./configure prefix=/usr

make

sudo chkinstall make install 

autogen.shで"msgfmt: cannot locate ITS rules ..."というエラーが出たのだが, ググると"appstream"というパッケージが足りないらしいという話だったのでインストールしたらOKだった.

ibusをリスタートしてみると....結果は, かわらないTT

結局, ibus-hangulを最新版の1.5.4にしてみても, やはりハングル入力モードのままmozcに切り替えて, その後mozcで日本語/英数の切り替えをするとibusが落ちる.

さらに, これはもしかしたらibus本体の問題ではないか(上のエラーメッセージはそもそもibus本体のソースから出ている)ということで, ibusの最新版(1.5.23)をソースからインストールしてみたが, 今度はibus-daemonが起動できなくなったりして(他のパッケージとの整合性?), ハマりそうなので断念.

ところで, この作業をしているときにibus-m17n(多言語入力)の中にもハングル入力の機能があるのを見つけた. ポルトガル語をちょっと勉強し始めた時にアクセント記号付きのアルファベットを入力するためにibus-m17nをインストールしていたのだが, その中にKoreanの2벌식(han2)とローマ字(romaja,ハングルを似た発音の英文字で入力)があったのだ.

2벌식を使ってみると, ibus-hangulのように落ちたりしないで安定している. ただ, ibus-hangulではハングル-漢字変換の機能(F9)があったのがこちらにはない. 旧字体や日本で使われない漢字をハングル入力から出せるという便利さは失われてしまうが, まあ実際に今の韓国語で漢字はほとんど使わないし, 安定してハングル入力ができれば良いということで...

結論: ハングルはibus-m17nのKorean/han2を使えばibus-mozcとの共存も問題なし.

追記2 (2021/2/18)

上の時点では, ibus-m17nのハングル入力を使えば問題なしと思えたが...

その後, ある程度まとまった量の韓国語文を入力してみると, 途中で知らないうちに母音字が入れ替わってしまうことがあって, 誤入力していることに気がついた.

例: 「마수미씨」 と入力したはずなのに => 「마사마씨」

これはibus-hangulでは起こらなかった現象. これでは使えないTT

やはり, 現状ではibus-hangulを使うしかないかぁ....

m(. .)m

追記3 (2021/2/24)

uimという手があることが分かったのでやってみました. 結果は...