Lambdaカクテル

京都在住Webエンジニアの日記です

Invite link for Scalaわいわいランド

ibus-skkが起動しなくなったけどログ見たら直せた

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

なんか見るからにエラー出ている。

対処

既知のエラーであり、対処法は既にある。

github.com

ログに出ている辞書ファイル/usr/share/libskk/rules/default/rom-kana/default.jsonに無効なエスケープキャラクターが混じっているのでこれを除去する。ログアウトして入り直したら治った。

原因

家のマシンでアップデートにともなってibus-skkなどが依存しているJSONパーサライブラリlibjson-glib-1_0-0が1.10.0に更新されて、無効なエスケープシーケンスをエラーにするようになったのが原因のようだった。

ibus-skkをインストールし直したりしていたけど、本当に入れ直さないといけないのはlibskkだったというオチでした

★記事をRTしてもらえると喜びます
Webアプリケーション開発関連の記事を投稿しています.読者になってみませんか?