有馬総一郎のブログ

(彼氏の事情)

2024年01月30日 19:37:02 JST - 2 minute read - Linux

IBus-SKKで設定が保存されるようにする

前回、IBusでdconfエディターなど使っても、ユーザ辞書のエンコーディングなどを変更できず、 GitHub - vim-skk/skkeleton: SKK implements for Vim/Neovim with denops.vimで併用するとファイルが壊れる話をしたが、設定保存のやり方が分かったのでメモしておく。

ibus skk で設定が保存できない問題、やっと解決策見つけたああああ https://t.co/Y1OGRTIL8x

ということで、 Effort 10%: ibus-anthyの設定が保存されない 問題解決にあった。

上記ではibus-anthyの話だけど、ibus-skkでも同じでibus-dconfが起動していないと保存されない。保存した設定のロードもibus-dconfが起動してないとされないので、起動の度にibus-daemon --config=/usr/libexec/ibus-dconf -drxをやる必要がある。

ibus-memconfでググると他にも同じような記事が二つ見付かった。

特に下の記事は起動するアプケーションのための desktop ファイルも用意されている。にしても、このバグ修正されんのかな。

ということで、ユーザ辞書のエンコーディングを変更した場合でも、

dconf write /desktop/ibus/engine/skk/dictionaries "['host=localhost,port=1178,type=server', 'file=/usr/share/skk/SKK-JISYO.L,mode=readonly,type=file', 'file=/home/arimasou16/.config/ibus-skk/user.dict,mode=readwrite,type=file,encoding=UTF-8']"

その後、 user.dict を確認すると Conding Cookieや文字コードはUTF-8となっていた。

;;; -*- coding: utf-8 -*-
;; okuri-ari entries.
;; okuri-nasi entries.
うちゅうせんかんやまと /宇宙戦艦ヤマト/

このまま使っても良いのだけど、やはり、何かあったときにユーザ辞書が壊れるのは嫌なので、ユーザ辞書を変更することにした。

dconf write /desktop/ibus/engine/skk/dictionaries "['host=localhost,port=1178,type=server', 'file=/usr/share/skk/SKK-JISYO.L,mode=readonly,type=file', 'file=/home/arimasou16/.config/ibus-skk/user.dict.utf8,mode=readwrite,type=file,encoding=UTF-8']"

再起動、確認。ヨシ!しかし、たまにこのIBus設定画面が開かないのは何なのか…

IBus-SKK

ちゃんと空集合たるØに変換される!

IBus-SKK

追記 2024-01-31

あー、駄目だ。ibusでキャッシュから読み込んで書き込むので、skkeletonでの書き込みが反映されずに反映されてしまう。大人しく別々にした方が良いということが分かった…

call skkeleton#config({
  \'globalDictionaries':["/usr/share/skk/SKK-JISYO.L","~/.config/ibus-skk/user.dict.utf8"],
  \'userDictionary':"~/.config/ibus-skk/user.dict.skkeleton",
\})
$ dconf read /desktop/ibus/engine/skk/dictionaries
['host=localhost,port=1178,type=server', 'file=/usr/share/skk/SKK-JISYO.L,mode=readonly,type=file', 'encoding=UTF-8,file=/home/arimasou16/.config/ibus-skk/user.dict.utf8,mode=readwrite,type=file', 'encoding=UTF-8,file=/home/arimasou16/.config/ibus-skk/user.dict.skkeleton,mode=readonly,type=file']

とIBus-SKKではskkeleton、それぞれ読み込み専用辞書で読ませておく方が良いのかなぁ。それにしてもグローバル辞書、システム辞書を監視してるわけでないので、更新したら、相互にすぐ読み込まれるわけではないだろうけど。それでも先祖返りするよりはマシなのかな。

追記ここまで