Karabiner-Elements を使って iTerm2 と RDP 以外では ctrl を cmd にする (Mistel BAROCCO MD770)
MacBook に Mistel BAROCCO MD770 をつないで iTerm2 使いながらリモートデスクトップもするためのメモ。なお Ctrl と CapsLock は MD770 側で切替済み。
やったこと:
- ctrl を cmd に
- ただし iTerm と RDP 中は左 ctrl をctrl のままに
- 右 ctrl は cmd のままにすることでコピー&ペーストできるように
- 日本語変換は CapsLock でトグル
手順: Karabiner-Elements
- caps_lock を英数キーに
- Complex modifications で:
- 英数・カナキーを toggle 方式にする
- 下記設定を追加
"description": "iTerm2 と RDP 以外では ctrl を cmd にする", "manipulators": [ { "type": "basic", "from": { "key_code": "left_control", "modifiers": { "optional": [ "any" ] } }, "to": [ { "key_code": "left_command", "lazy": true } ], "conditions": [ { "type": "frontmost_application_unless", "bundle_identifiers": [ "^com\\.apple\\.Terminal$", "^com\\.googlecode\\.iterm2$", "com\\.microsoft\\.rdc\\.macos" ] } ] }, { "type": "basic", "from": { "key_code": "right_control", "modifiers": { "optional": [ "any" ] } }, "to": [ { "key_code": "right_command", "lazy": true } ], "conditions": [ { "type": "frontmost_application_unless", "bundle_identifiers": [ "com\\.microsoft\\.rdc\\.macos" ] } ] } ] },
これは
karabiner-elements-complex_modifications
の Map left ctrl to command, command to option, option to control unless in iTerm2 or Remote Desktop
を参考にしたもの。右 ctrl の条件だけ変えてある。
本当は左右 cmd で日本語変換を切り替えたかったのだけれどそれだと iTerm 中に変換ができなくなってしまうため CapsLock に割り当てた。これでそれぞれの環境でそれなりのキーマッピングになった。
Mac から RDP で HHKB を使う
Mac から RDP で Windows で接続するとなぜか US キー配列になってしまう問題に、じゃあ HHKB(US) 使えばいいのでは?と思ったけどそれでもイマイチだったのと、その解決方法のご報告。
現状の RDP アプリ
Mac に挿した HHKB(US) はすんなりと Windows 側でも US キーボードとして使える。
ただし HHKB の右上にあるバッククォートのキーが正しく認識されないため、Alt+バッククォートによる IME の切り替えができない。
これは IME のキー設定で Ctrl+¥ に IME 切り替えを設定して解決。
だけど相変わらずバッククォートが正しく認識されないため、バッククォートとチルダ(Shift とのコンビネーション)が入力できない。これはプログラミングする上で死活問題。
困った。
ベータ版の RDP アプリ
バッククォートは正しく認識される。ただし日本語変換がインラインでできない。IME の切り替えは Mac 側で行われている模様(Cmd+Space で Mac 側の IME 切り替えが発生すると、それに応じて RDP 側の入力も変わる)。
じゃあこれで良いかというと、なぜか左右 Alt の識別がうまくいかないようで、Poderosa で左右の Alt に別々の機能を振っていても両方とも左 Alt として認識されてしまう。
困った。
どちらも微妙にうまくいかない。
解決方法
ベータ版の RDP アプリは描画がちょっともたつくなどの問題もあるため、現状の RDP を選択することにして、バッククォートとチルダを AutoHotKey で解決することにした。
バッククォートとチルダを出すためのスクリプト
sc056::Send,`` +sc056::Send,~
これで日本語入力、左右 Alt、バッククォート、チルダの問題を解決できた。