GNOMEを47にアップデートしたところibus-skkが動かなくなってしまった。
しかしこれでは大変困るので同僚に相談していたところskk辞書が壊れてない?という指摘を受けたので確認したらそれだった。
備忘録ついでにメモしておく。
環境
- openSUSE Tumbleweed
- Wayland
- ibus-skk 1.4.3
症状
ibus-skkに切り替えてもただ直接入力をしている状態になる
確認
なにごともログを見ることからはじまる。ibus-skkはibus-daemon
で起動するので直接起動させつつオプションをつけて詳細なログを出す。教えてくれた id:lufiabb に感謝
% ibus-daemon -rxv ** (ibus-engine-skk:52032): WARNING **: 11:28:15.844: skkserv.vala:67: can't open skkserv at localhost:1178: localhost に接続できませんでした: 接続を拒否されました ** (ibus-engine-skk:52032): WARNING **: 11:28:15.845: rom-kana.vala:202: can't find default rom-kana rule: can't load /usr/share/libskk/rules/default/rom-kana/default.json: /usr/share/libskk/rules/default/rom-kana/default.json:110:35: 解析エラー: unexpected character `,', expected string constant ** ERROR:rom-kana.c:664:skk_rom_kana_converter_construct: code should not be reached Bail out! ERROR:rom-kana.c:664:skk_rom_kana_converter_construct: code should not be reached
なんか見るからにエラー出ている。
対処
既知のエラーであり、対処法は既にある。
ログに出ている辞書ファイル/usr/share/libskk/rules/default/rom-kana/default.json
に無効なエスケープキャラクターが混じっているのでこれを除去する。ログアウトして入り直したら治った。
原因
家のマシンでアップデートにともなってibus-skkなどが依存しているJSONパーサライブラリlibjson-glib-1_0-0
が1.10.0に更新されて、無効なエスケープシーケンスをエラーにするようになったのが原因のようだった。
ibus-skkをインストールし直したりしていたけど、本当に入れ直さないといけないのはlibskk
だったというオチでした