SKKな話 (fcitx-skk)
長らく日本語の入力にはSKKを使ってきた。Emacs上ではddskk、その他X上ではUIM-SKKを愛用してきた。
んが、euc-jpベースの生活ではどうにもならないというか、礼を失することになる場面が増えてきた。自分自身の名前も「髙(はしご高)」なのだが、これはあまり気にしていない。しかし、他人が相手だと、その人が気にしようがしまいが、やはり異字体は異字体で書かねばなるまい。これだけunicodeが普及してきたのだから、対応できる限りは対応したいものだ。
UIMではどうしようもないので(patchを当てる方法はあるらしい)、fcitx-skk について調べてみた。fcitx-skkのデフォルトの文字コードをUTF-8にした fcitx-skk-plusというものもあるが、できるだけオリジナルのfcitx-skkでなんとかしたい(パッケージのバージョン管理が面倒だから)。そもそもUTF-8でないと対応できない文字も日常的にはそう多くはない。
fcitx-skk-plus (とrskkserv)のblogにヒントがありました。「『﨑』だけなら、SKK-JISYO.JIS3_4
をUTF-8に変換してやってエンコードを指定して辞書指定してあげればすみました。」と。辞書の文字コードを指定できるのであれば、必要最低限の辞書をUTF-8で作って、辞書リストに加えれば良い。SKK-JISYO.JIS3_4
なんかも、EUC-JISX0213を指定すれば良いだけじゃないか!
そこで見付けたのが、fcitx関連のTipsについて書かれたblog。ありがたい。
辞書リストの位置
$HOME/.config/fcitx/skk/dictionary_list
デフォルトの文字コードは、EUC-JPで、デフォルトの dictionary_listは以下のようになっている。
file=$FCITX_CONFIG_DIR/skk/user.dict,mode=readwrite,type=file file=/usr/share/skk/SKK-JISYO.L,mode=readonly,type=file
どちらの辞書も EUC-JPだ。これ以外のエンコーディングの辞書をどこかに置こう。僕は $HOME/.skk_dic というディレクトリを作成して、そこにSKK-JISYO.JIS3_4
と、自分で作成した SKK-JISYO.UTF-8 という辞書を置いた。
$HOME/.skk_dic/SKK-JISYO.UTF-8 の中身
;;; -*- coding: utf-8 -*- こうち /髙地/
とりあえず、これだけ。
$HOME/.config/fcitx/skk/dictionary_list を改変
file=$FCITX_CONFIG_DIR/skk/user.dict,mode=readwrite,type=file file=/usr/share/skk/SKK-JISYO.L,mode=readonly,type=file file=/usr/share/skk/SKK-JISYO.jinmei,mode=readonly,type=file file=/usr/share/skk/SKK-JISYO.geo,mode=readonly,type=file file=$HOME/.skk_dic/SKK-JISYO.JIS3_4,mode=readonly,type=file,encoding=EUC-JISX0213 file=$HOME/.skk_dic/SKK-JISYO.UTF-8,mode=readonly,type=file,encoding=UTF-8
こんな感じにした。最後の2行(太字部分)にエンコーディング指定の辞書を指定している。これで変換できた。「髙地」とか「山﨑」とか。
追記(こっちが重要)
その後、色々弄っていたら、dictionary_list の内容から “encoding=xxx”の部分が消えていたが、どうやら文字コードは自動判別するっぽい。dictionary_list を直接弄らずに、単に追加すれば良いらしい。
UTF-8の文字(「髙」とか)を学習するように、user.dict のエンコーディングも UTF-8 に変更した。
TtttttttttTtf654%6y55%ct,56{s]5-66566666zctdrRc,dtrcDccFtccftFtctcrctctccrctcrcccrc6{cv:….52,i:… 7 7 %%] ],,