Macでのキーバインド変更(CtrlとCommand入れ替え,ターミナル.appを使うときは入れ替えない)

昨年の暮れに Mac Book Air を購入.
Windows 一筋 15 年(中学生の頃,自宅で親父が Win95(FM-TOWNSとのデュアルブートというマニアック構成) 購入して以来...)のワタシでも,だんだんと慣れてきた.

で,大学時代から慣れ親しんでいるキーバインド(タイトル)に変更したいという思いが強くなってきた.
会社で使ってる Windows 機も,Caps 殺して Ctrl として使ってるぐらいなので...

注意点

  • 常駐するサードパーティのソフトを使う.
  • キーのリマップなので,慎重に.
  • 自己責任でお願いしm(ry

そもそもの背景から.

Commandキー

Windows でいうところの Ctrl キーの役割.コピー/カット/ペースト/Undo などのショートカットはCommand + c/x/v/z に割り当てられている.

Ctrlキー

ターミナル.app を使うときにはこちらが Ctrl キーとして生きるようだ.
シェル使ってる時に Ctrl + u,Ctrl + k,Ctrl + a,Ctrl + e,Ctrl + r を使いたい.

うーん

  • 今まで私が Windows で Ctrl として使ってたキーが,Command,Ctrl に役割が分散している
  • HHKに慣れてしまったせいか,「a」の横に Ctrl キーがあって欲しい.

つまりどういうことかというと

  • Mac の Ctrl キーと Command キーを入れ替えたい
  • ただし,ターミナル.appを使うときには,上記のキーの役割は入れ替えたくない.

この2つの実現方法はそれぞれ以下.

実現方法

Ctrl キーと Command キーを入れ替え

  • システム環境設定 → キーボード → 修飾キー
  • 以下のように設定


ターミナルの時に入れ替えない設定

正確には,入れ替えたキーをさらに入れ替えて元に戻している.

  • KeyRemap4MacBookをインストール
  • システム環境設定 → KeyRemap4MacBook → Misc&Uninstallタブ → Open Private.xmlボタン
  • テキストエディタかなんかで private.xml を開く.
  • 以下のように書き込み.identifierタグの内容は適当に変更(最後の2がないと,既存の設定名とバッティングしてしまった).
<?xml version="1.0"?>
 <root>
 <list>
  <item>
   <name>Command_L to Control_L (TERMINAL ONLY)</name>
    <only>TERMINAL</only>
    <identifier>remap.app_term_commandL2controlL2</identifier>
    <autogen>--KeyToKey-- KeyCode::COMMAND_L, KeyCode::CONTROL_L</autogen>
   </item>
   <item>
    <name>Control_L to Command_L (TERMINAL ONLY)</name>
    <only>TERMINAL</only>
    <identifier>remap.app_term_contolL2commandL2</identifier>
    <autogen>--KeyToKey-- KeyCode::CONTROL_L, KeyCode::COMMAND_L</autogen>        
   </item>
  </list>
 </root>

以上でOK.