2021-05-02

私のMacBook AirのUS配列のキーボードをカスタマイズして、左端の一番の特等席をCtrlに

カスタマイズ後の私のM1 MacBook Airのキーボード

MacBook Air/ProのUS配列キーボードや、外付けコンパクトキーボード(テンキー無しキーボード)でどうしてもしっくり来ないのが、左下端のfnキーです。
この位置は、手探りでも間違いなく確実に押せるいちばんの特等席なのに、通常のタイピングでは全く使わないfnキーが置かれています。
ターミナルでのコマンド操作や、リモートデスクトップでのWindowsへの接続ではCtrlキーをよく使います。
この場所はWindows機でよくあるようにCtrlキーになっているべきです。
JIS配列(日本語配列)のキーボードの場合、Ctrlキーは文字Aの左(US配列でのCaps Lockの位置)にあってとても優遇されているのに比べると、ひどいものです。

MacBook Air(とMacBook Pro、それにテンキー無しの現行のMagic Keyboard)をよく見ると、都合の良いことに、fnキーとCtrlキーのサイズが同じなので、入れ替えられそうに見えます。
キーの手前の左右の角に精密ドライバを差し込んで、注意深く持ち上げてやると、パチンと爪が外れ、そのまま手前にずらすとキートップを取り外せます。
この要領で、MacBook AirのfnキーとCtrlキーを入れ替えたのが右の写真です(ちなみにMicrosoft Lensアプリで写真を長方形に綺麗に補正しました)。

最初はどことなく違和感を感じますが(どうでしょう、あなたは違いに気づきましたか?)、目はすぐに慣れますし、なによりCtrlキーの押しやすさに雲泥の差が出ます。

物理的にキートップを入れ替えただけではもちろん動作は変わりません。
キーカスタマイズアプリの定番、Karabiner Elementsを使って、キーを押した時に入力されるキーコードを入れ替えてやる必要があります。

【fnとCtrlを入れ替え】
設定は簡単で、2番目の画面のように、[Simple modifications] タブで、fnをleft_controlにお互いに入れ替えるだけです。
[Target device] のところは、規定値の [For all devices] でも良いのですが、他の外付けキーボードを接続した時のことも考えて、私は [Apple Internal Keyboard / Trackpad (Apple Inc.)] を指定しました(本体のキーボード以外ではこの入れ替えを実行しない)。

物理的なキートップの入れ替えまでやらないにしても、Karabiner ElementsのfnとCtrlの入れ替え設定は、Ctrlキーを多用するUS配列の方には是非とも試してみていただきたい設定です。


以下、長くなりますが、私がKarabiner Elementsで設定しているあと3つの便利な設定を紹介したいと思います。
いずれも [Complex modifications] で設定するものです。

【Ctrl+DeleteをDelに】
WindowsではBackspaceキーで左の一文字が削除、Delキーで右の一文字が削除されるので、カーソル位置の文字を消したい時に一発で行えてとても便利です(カーソルを消したい文字の右側に移動してから削除とやらなくて良い)。
もしかすると、それほど知られていないかもしれませんが、Macでは、fn+DeleteでWindowsのDelのように右側の一文字削除を行えます。
今回fnとCtrlを入れ替えたがために、fn+Deleteが押しにくくなってしまいました。
これをカバーするために、Ctrl+DeleteでもDelが実行されるようにしたいと思います。

この設定は Karabiner Elements にテンプレートとして用意されています。
[Complex modifications] の [Add rules] ボタンを押した後、
[Import more rules from the Internet (open a web browser)] を押し、
開いたブラウザの中で "backspace" を文字列検索し、見つかった [Map Ctrl+Backspace-Delete to Fn+Backward-Delete (suppr current character)] を
[Import] します。
すると一覧に [Map Ctrl+Backspace-Delete to Fn+Backward-Delete (suppr current character)] が表示されるので [Enable] します。

【Caps Lockキーで日本語英語入力切り替え、ただしリモートデスクトップでは何もしない】
US配列キーボードで日本語を入力するには、メニューで [あ] を選んでも良いのですが、M1 Macではfnキーに地球儀マークがありこのキーで切り替えることができます。
さらにキーボード環境設定の [入力ソース] タブの [Cpas LockキーでABC入力モードと切り替える] にチェックを入れると、Caps Lockキーを日本語英語切り替えに設定できます。
このCaps Lock設定を行うと、リモートデスクトップで接続先のOSに対して本来のCaps Lockキーが送信されなくなってしまい、とても不便です(WindowsでもCaps Lockキーを日本語英語切り替えに設定している場合には動作しなくなる)。
Karabiner Elementsを使うと、この悩みを解消することができます。

Karabiner Elementsの [Complex modifications] では、対象アプリを絞ったり、除外したりしてキー割り当てのカスタマイズを行うことができます。
テンプレートとして用意されていない設定は、設定ファイルを作成することで対応します。
フォルダ /Users/your_user_name/.config/karabiner/assets/complex_modifications に以下の内容のJSONテキストファイルを作成します。

{
  "title": "For Japanese",
  "rules": [
    {
      "description": "Caps_lock to Toggle ja/en unless RDC",
      "manipulators": [
        {
          "type": "basic",
          "conditions": [
            {
              "type": "frontmost_application_unless",
              "bundle_identifiers": [
                "^com\\.microsoft\\.rdc\\.macos$"
              ]
            },
            {
              "type": "input_source_if",
              "input_sources": [
                {
                  "language": "ja"
                }
              ]
            }
          ],
          "from": {
            "key_code": "caps_lock",
            "modifiers": {
              "optional": [
                "any"
              ]
            }
          },
          "to": [
            {
              "key_code": "japanese_eisuu"
            }
          ]
        },
        {
          "type": "basic",
          "conditions": [
            {
              "type": "frontmost_application_unless",
              "bundle_identifiers": [
                "^com\\.microsoft\\.rdc\\.macos$"
              ]
            },
            {
              "type": "input_source_if",
              "input_sources": [
                {
                  "language": "en"
                }
              ]
            }
          ],
          "from": {
            "key_code": "caps_lock",
            "modifiers": {
              "optional": [
                "any"
              ]
            }
          },
          "to": [
            {
              "key_code": "japanese_kana"
            }
          ]
        }
      ]
    }
  ]
}

このJSONファイルを作成したのち、[complex modifications] の [Add rule] ボタンを押すと、一覧に [Caps_lock to Toggle ja/en unless RDC] が表示されるので、[Enable] します。

【リモートデスクトップの中では右CommandキーをApplicationキー(ポップアップメニュー表示)に】
Windows機でスペースバーの右の方にあるポップアップメニューのキー(正式にはApplicationキーと言う)は、わざわざマウスに持ち替えて右ボタンを押すのを省けてとても便利です。
Macのキーボードにはこのキーがないので右のCommandキーで代用したいと思います、ただしリモートデスクトップを使っている時だけ。

一つ前の設定と同様に、フォルダ /Users/your_user_name/.config/karabiner/assets/complex_modifications に以下の内容のJSONテキストファイルを作成します。

{
  "title": "Windows context menu",
  "rules": [
    {
      "description": "RDC right_command to context_menu",
      "manipulators": [
        {
          "type": "basic",
          "conditions": [
            {
              "type": "frontmost_application_if",
              "bundle_identifiers": [
                "^com\\.microsoft\\.rdc\\.macos$"
              ]
            }
          ],
          "from": {
            "key_code": "right_command"
          },
          "to": [
            {
              "key_code": "f10",
              "modifiers": [
                "shift"
              ]
            }
          ]
        }
      ]
    }
  ]
}

このJSONファイルを作成したのち、[Complex modifications] の [Add rule] ボタンを押すと、一覧に [RDC right_command to context_menu] が表示されるので、[Enable] します。

No comments:

Post a Comment