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_modificationsMap left ctrl to command, command to option, option to control unless in iTerm2 or Remote Desktop を参考にしたもの。右 ctrl の条件だけ変えてある。

本当は左右 cmd で日本語変換を切り替えたかったのだけれどそれだと iTerm 中に変換ができなくなってしまうため CapsLock に割り当てた。これでそれぞれの環境でそれなりのキーマッピングになった。

ネットワーク中立性

  • 考えられる例
    • 他社コンテンツのブロック
    • 競合のストリーミングを遅くする
    • 得意先の通信だけ速くする
  • 悪夢
    • ケーブルテレビのような「パッケージ契約」になる
      • 動画は○○
      • ニュースは△△
      • メールは××
  • 現在行われていること
    • 特定のサービスは無制限
    • その他は従量課金
  • 何が起こるか?
    • ベンチャー企業が競争に参入できなくなる
      • 通信事業者に認知してもらえないと土俵に上がれない
    • 解像度(品質)が犠牲になる
      • 通信量の多いアプリが制限される(4K -> HD)

参考

https://wired.jp/2017/11/23/end-of-net-neutrality/

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、バッククォート、チルダの問題を解決できた。