げっとシステムログ

WEB開発メモ

Mac で「かな」配列をカスタマイズする - その後

CONTENTS
  1. IME の状態を条件に使用する
  2. 複数キーの同時入力でうまく入力できない問題
  3. まとめ
  4. 参考資料
SOURCE
  1. shun-fix9/karabiner-elements-complex_modifications
APPENDIX
  1. 新下駄配列

IME の状態を条件に使用する

この記事にある通り、 input_source_if で IME の状態を条件の中で使用することができるようになった。

サンプルとしてEscキーに対するマッピングの例。

{
  "type": "basic",
  "conditions": [
    {"type": "input_source_if","input_sources": [{"language": "ja"}]}
  ],
  "from": {"key_code": "escape"},
  "to": [{"key_code": "japanese_eisuu"},{"key_code": "escape"}]
}

これは、日本語入力モードの場合、Escキーを「英数」+「Escキー」に割り当てる設定だ。 元の記事でも書いてあるが、 Vim を使用しているとこのマッピングがなかなか便利に使える。

input_source_if を使用することで、「かな」「英数」入力時にわざわざ is_japanese_kana 変数を操作する、ということをしなくて済むようになる。 また、パスワードの入力等、 IME が自動的に無効化される場合などもこれでうまく対応できる。

TOP

複数キーの同時入力でうまく入力できない問題

例えば、以下のような設定の場合、うまくいかない事がある。

{
  "type": "basic",
  "conditions": [
    {"type": "input_source_if","input_sources": [{"language": "ja"}]},
  ],
  "from": {"key_code": "z"},
  "to": [{"key_code": "s"},{"key_code": "u"}]
},
{
  "type": "basic",
  "conditions": [
    {"type": "input_source_if","input_sources": [{"language": "ja"}]},
  ],
  "from": {"key_code": "m"},
  "to": [{"key_code": "r"},{"key_code": "u"}]
},

この設定で「する」と打鍵すると、時々「すr」になってしまう。 「る」と入力されるべき r u のうち、後の u が、うまく入力できないことがあるのだ。

Karabiner-Elements の Event Viewer で、キーを押した時にどんな処理かしているのかを見る事ができる。 これで調べた結果、ある文字が Key Press 状態の時、同じ文字のイベントが無視されてしまうように見える。

そこで、各マッピングの最後を空のイベントにすることで、どの文字も Key Press 状態にならなくしてみた。

{
  "type": "basic",
  "conditions": [
    {"type": "input_source_if","input_sources": [{"language": "ja"}]},
  ],
  "from": {"key_code": "z"},
  "to": [{"key_code": "s"},{"key_code": "u"},{}]
},
{
  "type": "basic",
  "conditions": [
    {"type": "input_source_if","input_sources": [{"language": "ja"}]},
  ],
  "from": {"key_code": "m"},
  "to": [{"key_code": "r"},{"key_code": "u"},{}]
},

これで一応、「する」もうまく入力できるようになった。 ただし、 Key Press しなくなるので、キーを押し続けて文字を入力することはできなくなる。

TOP

まとめ

Karabiner-Elements がアップデートされて、機能が Karabiner に追いついてきた。

TOP

参考資料

TOP

新下駄配列

新下駄配列を作りました : ローマ字入力でもなく、かな入力でもなく を参考に作成。

TOP