環境:
MacBookPro(10.13.6|US) + 外付けWinUSキーボード
MacBookPro(10.13.6|JIS) + 外付けWinUSキーボード
MacBookPro(10.13.6|JIS) + 外付けMacUSキーボード
問題:
USキーの左右Commandキーを英数/かなに変更して文字入力していると、不可視文字が入力されていることがある。これを回避する。
原因:
Command/Control/Option/Shift + EISSU もしくは、Command/Control/Option/Shift + KANA の入力で、不可視の0x08(バックスペース)の制御コードが挿入される。
これはMacOSと、ことえり(日本語IM)のバグでかなり前からあるけどずっと解消されていない。とのこと。
https://blog.right-apps.com/develop/2018/post-62/
http://kawaken.hateblo.jp/entry/2018/04/02/234339
解決法:
Karabiner-Elements の complex_modifications で調整する。
Karabiner-Elements をインストールし、一旦キー配列のみ変更。
https://pqrs.org/osx/karabiner/ (記事時点では、v12.4.0)
▼ キーリマップ
キーボードDIPスイッチ: 左Alt ←→ 左Command (入れ替え)
Karabiner-Elements: 右Alt → 右Command
▼ complex_modifications での調整
https://pqrs.org/osx/karabiner/complex_modifications/
↑ここから、 For Japanese (日本語環境向けの設定) (rev 4) をダウンロードしてインストールして使っていたのですが、デフォルトの設定だと、 Control/Option/Shift + Command の一度押しで、0x08(バックスペース)の制御コードが入力されてしまう。
設定をよく見ると、modifiers でほかのキーを押している状態でも、コマンドの1回押しで数・かなキーが送られるようになっていた。modifiers を丸っと削除したところ、不可視文字の入力を回避することに成功。
デフォルト
"from": {
"key_code": "left_command",
"modifiers": {
"optional": [
"any"
]
}
},
調整後
"from": {
"key_code": "left_command"
},
以上。同じ状況で困っている人の参考になれば幸いです。
メモ
▼ 自分の環境でのMacUSキーの左右Commandキーを英数/かなに変更する方法の変遷。
- KeyRemap4MacBook(~10.8)
- Karabiner(~10.11) [このKarabinerにはこのバグをFixするアセットがデフォルトで入っていたのですが、Elementsだと無い。]
- ⌘英かなApp[https://ei-kana.appspot.com/] (~10.12)
- Karabiner-Elements(~10.13)
参考リンク
https://qiita.com/s-show/items/40ad22c4ee4a0465fad5
https://qiita.com/nekoneko_mon/items/4450646fe1dbb052bd6c
▼ しかしながら、option+control+記号以外の文字 で DEL が入力される問題は解消できず…。
▼ 追記
MacBookPro側のキーボードが JISキーの場合、Karabiner-Elements が立ち上がっていると、USキーとして認識されてちょっとパニクる。
→ Karabiner-Elementでコントロールしたい外部キーボード以外を、Devicesから外してあげるとうまくいく。