[comp] 続・uim-skk から ibus-skk へ

入力補完や変換ミスを C-g (Ctrl+g) 以外に esc (Escape) でキャンセルするには、独自ルールを作ることで対応できた。

  1. ~/.config/libskk/rules/custom/ ディレクトリを作成。
  2. custom ディレクトリ以下に metadata.json ファイルを次の内容で作成。
{
    "name": "custom",
    "description": "custom rules"
}
  1. custom ディレクトリ以下に /usr/share/libskk/rules/default/rom-kana/ ディレクトリに対するシンボリックリンクを作成(これでいいのか不明)
  2. keymap ディレクトリを作成。
  3. keymap ディレクトリ以下に /usr/share/libskk/rules/default/keymap/ ディレクトリ以下の *.json ファイルをすべてコピー(これでいいのか不明)
  4. default.json ファイルに esc (Escape) のキーマップを追加。
--- /usr/share/libskk/rules/default/keymap/default.json	2021-01-10 03:26:52.000000000 +0900
+++ ./default.json	2023-10-28 21:54:52.006252472 +0900
@@ -2,6 +2,7 @@
     "define": {
        "keymap": {
             "C-g": "abort",
+            "Escape": "abort",
             "\n": "commit-unhandled",
             "C-m": "commit-unhandled",
             "\b": "delete",
  1. ibus-skkの設定でTyping Ruleを custom に設定。

これでOK。 jsonファイルの全コピーがダサいんだけど、既存のルールへの追加方法がどうもよくわからなかったので、このままで。また、 latin.json に

--- /usr/share/libskk/rules/default/keymap/latin.json	2021-01-10 03:26:52.000000000 +0900
+++ ./latin.json	2023-10-28 22:22:55.691675624 +0900
@@ -4,6 +4,8 @@
     ],
     "define": {
         "keymap": {
+            "(lshift space)": "set-input-mode-hiragana",
+            "(rshift space)": "set-input-mode-hiragana",
             "C-j": "set-input-mode-hiragana"
         }
     }

を入れてみたけど、shift+space がどこかで横取りされてるのか、うまく動かなかった。これが動くようになるとありがたいんだけど…。