karubabuの日記

タイトルに解決と書いているものがあるけれど、別に付いていない物は解決していないというわけではないです。つまるところ記事を書いた後に解決してちょっと嬉しかったので付けました。

fcitx-skk mode=readonlyした辞書が認識されない

他にもreadonlyにしてある辞書があるのに特定の辞書だけ認識されない場合はこの問題だと思う
mode=readonlyにしたいのなら辞書の並んでいる順番は色々大事らしいので適宜並べなおそうねということです

なにがおきた

fcitx-skkで辞書を追加する時は、GUIの設定経由ではなく~/.config/fcitx/skk/dictionary_listを直接編集して辞書を追加している
私が使い方を理解していないのかはたまた設定する場所がないのかで、
GUIからだと辞書ファイルに対して書き込むかどうかの設定、mode=readwrite 又はmode=readonlyの設定ができない

そんなこんなでおすすめされた辞書を追加しようと~/.config/fcitx/skk/dictionary_listを編集してfcitxを再起動すると、どうしてか追加した辞書だけが反映されない

入力例
file=/home/admin/.skk/SKK-JISYO.LL,mode=readonly,type=file
☝️(´・ω・`)user.dict以外皆おなじで名前が違うだけだからここを間違えたわけではない

追加した辞書だけがうまく動かなくて既存の辞書はよしなにやってくれるのでどうやら追加した辞書がなんかうまいこといかないみたい

どうした

もちゃもちゃやっているとどうも

  • mode=readonlyな状態ではokuri-ariは逆辞書順、okuri-nasiは辞書順にソートされている必要がある
  • mode=readwriteな状態だとこの制限は無い

ということらしい どうしてそんな制限があるの
解決策としては

  • mode=readwriteで辞書リストに登録し、辞書ファイルの権限を444あたりにする
  • 辞書ファイルを適当にそーとする

前者はめちゃ簡単だしskkが書き込みに失敗しても最終的にuser.dictに書きこまれるだけなので問題無い
ちょっと嫌なことといえばこっそり裏で"readwriteな辞書に書き込めなかったんだが"とエラーメッセージがでる
後者は権限を弄らずにエラーメッセージも出ずに対処できるけれどまあどっちかというとたるい
日本語の文字でもsortコマンドが完全によくやってくれるので対した作業ではないと思う
逆辞書順はsort -rすればよいよ

GUIからmodeを弄る方法ないのなんかおかしいし多分見つけられていないだけだと思う
見つけられる千里眼持っている人は私に教えてください