[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"
    }
    
  3. custom ディレクトリ以下に /usr/share/libskk/rules/default/rom-kana/ ディレクトリに対するシンボリックリンクを作成(これでいいのか不明)
  4. keymap ディレクトリを作成。
  5. keymap ディレクトリ以下に /usr/share/libskk/rules/default/keymap/ ディレクトリ以下の *.json ファイルをすべてコピー(これでいいのか不明)
  6. 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",
    
  7. 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 がどこかで横取りされてるのか、うまく動かなかった。これが動くようになるとありがたいんだけど…。