Skip to content

Instantly share code, notes, and snippets.

@udnp
Last active December 4, 2021 18:07
Show Gist options
  • Save udnp/91a9ae03247a593814c93d0005ba718f to your computer and use it in GitHub Desktop.
Save udnp/91a9ae03247a593814c93d0005ba718f to your computer and use it in GitHub Desktop.
IBus SKK の設定が Ubuntu で保存されない問題の DIY hack/Hack against the issue that it seems configurations about IBus SKK are not registered at all.

IBus SKK の設定が Ubuntu 20.04 LTS で保存されない問題の DIY hack

動機

誤入力を避けるために IBus SKK の設定で「初期入力モード」を「英数」にしたい.また「句読点の形式」を「.,」にしたい.

ibus-skk-config-gui-after

しかし,IBus SKK の設定画面で「初期入力モード」や「句読点の形式」を変更しても,動作として反映されてないような振舞いをし,次回ログイン時には設定画面上も設定がクリアされている.

ibus-skk-config-gui-before

環境

ゲスト

Ubuntu 20.04 LTS + iBus SKK 1.4.3

ホスト

Windows 10 Pro 20H2 の Hyper-V

クライアント

Windows 10 Pro 20H2 の vmconnect で拡張接続

原因調査

IBus の設定保存方法と IBus SKK のその方法が不整合を興している?

Migration request from IBusConfig to GSettings · Issue #61 · ueno/ibus-skk

次の情報を参考にして,IBus の設定を保持していると思われる dconf を直接書き換えても反映されなかったので,IBus SKK から IBus に対する設定値の set/get 共に機能してないと推測した

解決方法

Ubuntu 20.04 の IBus SKK の source code を取得して,その src/preferences.vala に記載されている設定の初期値を変更し make install する

upstream source code の該当箇所
https://github.com/ueno/ibus-skk/blob/ibus-skk-1.4.3/src/preferences.vala#L70-L101

DIY hack patch

詳細

Ubuntu の package から install した IBus SKK を uninstall

$ sudo apt remove ibus-skk

IBus SKK の source code の取得

$ apt source ibus-skk

IBus の make に必要なものを取得

autogen.sh で要求される

  • genome-common
  • libibus-1.0-dev
  • libskk-dev
  • valac
  • libgtk-3-dev

debian/rules で要求される

  • dh-make

build then make install

$ debian/rules build
$ sudo make install

error になる場合は autogen.sh を実行して要求されるものがあれば install する

参考

diff --git a/src/preferences.vala b/src/preferences.vala
index c7f196a..67444a2 100644
--- a/src/preferences.vala
+++ b/src/preferences.vala
@@ -81,7 +81,7 @@ public class Preferences : Object {
_default.set ("auto_start_henkan_keywords",
new Variant.strv (AUTO_START_HENKAN_KEYWORDS));
_default.set ("period_style",
- new Variant.int32 ((int32) Skk.PeriodStyle.JA_JA));
+ new Variant.int32 ((int32) Skk.PeriodStyle.EN_EN));
_default.set ("page_size",
new Variant.int32 (7));
_default.set ("pagination_start",
@@ -89,7 +89,7 @@ public class Preferences : Object {
_default.set ("show_annotation",
new Variant.boolean (true));
_default.set ("initial_input_mode",
- new Variant.int32 (Skk.InputMode.HIRAGANA));
+ new Variant.int32 (Skk.InputMode.LATIN));
_default.set ("egg_like_newline",
new Variant.boolean (false));
_default.set ("typing_rule",
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment