現在地

【Mac効率化】Karabinerで爆速開発環境を構築する

作成者:assi 作成日:月, 06/20/2016 - 22:40

例えば、ブラウザのURLを一発でコピーする。
例えば、よく使う単語を一発で展開する。
例えば、任意のアプリにどこからでもアクセスする。
(Total Finderのバイザー機能、WindowsのWin+数字キーです)

自分がよく行っている動作を1つのキーで再現出来たら、とても素敵だと思いませんか?

それ、Karabinerでできます。

前回の記事ではモードを切り替えてどこでもVim風の操作をする方法をご紹介しましたが、今回はもう一歩踏み込んでカスタマイズし、自分に最適化された開発環境の構築方法をご紹介します。

Karabinerデモ

目次

style="display:block"
data-ad-client="ca-pub-1711493402429966"
data-ad-slot="8019016138"
data-ad-format="auto">

カスタマイズファイル「private.xml」

Karabinerをカスタマイズするには、private.xmlというファイルを使用します。
こちらにXML形式でそれぞれのキーに対する処理を記述することにより、自由にマクロの登録を行うことができます。
まずはprivate.xmlを開くために、Karabinerの設定画面から
「Misc & Uninstall」タブを選択し、「Open private.xml」ボタンをクリックします。

Karabinerの設定画面から「Misc & Uninstall」タブを選択し、「Open private.xml」ボタンをクリックします

するとファインダーでprivate.xmlの場所が表示されますので、ファイルをエディタで開きます。
いつも私が使用しているものを用意しましたので、実際にどんな感じかまずはこちらで掴んでいただければと思います。
こちらを右クリックの「リンク先を別名で保存」でダウンロードし、標準のファイルと置換する形で保存してください(念のため、標準の方はバックアップを取って置いた方が良いかもしれません)。

「private.xml」

無事置換ができたら、Karabiner設定画面の「Change Key」タブを選択し、右上の「Reload XML」をクリックしてprivate.xmlの再読み込みを行います。

Karabiner設定画面の「Change Key」タブを選択し、右上の「Reload XML」をクリックしてprivate.xmlの再読み込みを行います

無事に内容が反映にされていれば再上部に「独自マクロ」という項目が出てきますので、そちらを展開してください。
それぞれ追加した内容の左にチェックボックスがあり、そちらをチェックすることで機能を有効にできます。

それぞれ追加した内容の左にチェックボックスがあり、そちらをチェックすることで機能を有効にできます

カスタマイズ例:ベーシック・Mac標準機能

まずはどこでも使用できる、普遍的なカスタマイズを有効にします。

[bsc]という接頭辞の付いた項目にチェックを入れてください。
その状態でエディタ等の任意の場所で、英数キーを押しながら
「」内にあるキーを押すとマクロが動作します。

例えば「『Up』で7つ移動」を動作させるには、英数+↑という具合になります。
これで、上下左右にカーソルを高速移動させることができます。もちろん
Shiftを組み合わせることにより選択も可能です。

上下左右にカーソルを高速移動させることができます

他にも前回の記事ではEscキーによるモードの切替を用いてVim風の移動を実現していましたが、そんな面倒くさいことももう必要ありません。
英数キーを押しながら
H、J、K、Lを押すことにより、モードの切替も必要なく、Escキーを汚すこともなく、Vim風の移動が実現できます。

他の全コピペやブラウザURLコピペ等、適宜お試しください。

Mac標準機能

冒頭で言及した

例えば、任意のアプリにどこからでもアクセスする。

が、こちらの機能にあたります。

[mac]という接頭辞の付いた項目にチェックを入れ、英数+数字キー(1〜5)を押すだけです。
たったこれだけで、あなたのお気に入りのアプリをどこでも好きなときに呼び出せます。
数字キーはそれぞれ、Dockを左から見たときの順番に対応しています(例えば
英数+2では、Dockの左から2番目のアプリが呼び出される)。

お気に入りのアプリは、予めDock上で並び替えてあげておいてください。

数字キーはそれぞれ、Dockを左から見たときの順番に対応しています

カスタマイズ例:テキスト入力・マークダウン

かっこ内に文字を打つのに、Shiftを押して入力して、半角全角変換をして、Enterを押してカーソルを左に移動して……

そんなことをする必要は、もうありません。
上記の今までの方法では、文章を打ち始めるのに6ストロークでしょうか?
Karabinerを使えば、2ストロークです。

[txt]の接頭辞の付いた項目にチェックを入れて、英数+8〜9英数+[英数+]を試してみてください。

英数+Spaceにより、全角入力中の半角スペースも思いのままです。
この素晴らしく細やかな気配りに、あなたは親しみと感動を覚えるでしょう!

[txt]の接頭辞の付いた項目にチェックを入れて、英数+8〜9や英数+[、英数+]を試してみてください

マークダウン

マークダウンはとても素晴らしいものです。どこでも、何を使っても、文章を構造化することができます。
ただ1つの悲しい点は、半角と全角を頻繁に切り替える必要があるため、日本語と相性が悪いということです。

それも、Karabinerで解決しましょう。

[mkd]の接頭辞のついた項目を有効にして、英数+F1〜F3です(Mac標準では、fnキーも押下する必要がありますが……面倒なので環境設定→キーボードでfnキーを外すことをお勧めします)。
即座に見出しが展開され、入力モードはもちろん全角で、あなたの入力を待っています。

[mkd]の接頭辞のついた項目を有効にして、英数+F1〜F3です

それだけではありません。

#を入力する前に行頭へ移動する処理が加えられているので、既存の文を素早く見出しにすることも可能です。
上記のデモでは「見出し3」に使用していますが、これは箇条書きや引用についても同様です。

箇条書きや引用についても同様です

プログラム

コードを書く際にも、Karabinerによるカスタマイズは非常に有効です。
長いスニペットとなればエディタの機能を使った方が良いですが、頻繁に、なおかつ直感的に使用するものをKarabinerに任せると大変幸せになれます。
私は普段マークアップをすることが多いので、ここではHTMLやCSSを例にご紹介します。

例えば英数+p英数+mpaddingmarginのショートハンドを展開する。
Emmetよりも早く、好きな箇所をハイライトさせてすぐに値を設定することも可能です。

プログラムデモ

良く使うclearfixclass=""(最初にEmmetで処理しておくのがベストなんですが、後から変更とか色々……)、<br>をすぐに展開できるようにしておくと、コーディング中にナチュラルハイになれます。
またEmmetと連携させて、コメント付きのタグ展開を高速で処理できるようにしても良いでしょう。

プログラムデモ

もちろん、コメントも思いのままです。

プログラムデモ

あなたが扱う言語によってこれらをカスタマイズすれば、エディタでは手の届きづらいところの効率化を行うことができます。
おまけにKarabinerの処理はとてもプリミティブなものなので、これらは場所を選ばず ー例えそれがメモ帳であってもー 動作させることができますよ!

自由にカスタマイズする

ここまでは私が普段使用している設定でカスタマイズ例をご紹介してきましたが、当然みなさまそれぞれに最適化されたカスタマイズが必要でしょう。
最後に、private.xmlの記法を知ることで自由にカスタマイズする方法をご紹介します。

項目1つ1つをitemタグで括り、カスタマイズを追加していく形になります。

nameタグには任意のラベルを設定し、identifierには独自の名前を割り当てます。

identifierが一意でないとXML再読み込み時にエラーが発生するので、他のものと名前が被らないようにしてください。

[bsc]「w」で全コピーprivate.remap.wholecopy__KeyOverlaidModifier__ KeyCode::JIS_EISUU, KeyCode::VK_MODIFIER_EXTRA1, KeyCode::JIS_EISUU
    __KeyToKey__KeyCode::W,ModifierFlag::EXTRA1,
    KeyCode::VK_MOUSEKEY_BUTTON_LEFT,
    KeyCode::A,ModifierFlag::COMMAND_L,
    KeyCode::C,ModifierFlag::COMMAND_L
  

autogenタグが2つありますが、1つ目はトリガーを英数キーにするためのものなので基本的に編集の必要はありません。
2つ目のautogenタグが実際のマクロの内容となり、
__KeyToKey__KeyCode::直後の箇所に発火させるキーを、ModifierFlag::EXTRA1,の後に処理内容を続けます。

単純にキーの繰り返しのみでよい場合は、KeyCode::該当キーの組み合わせをカンマ区切りでひたすら続けます。

例)カーソルを上に3つ移動

  
    __KeyToKey__KeyCode::CURSOR_UP,ModifierFlag::EXTRA1,
    KeyCode::CURSOR_UP,
    KeyCode::CURSOR_UP,
    KeyCode::CURSOR_UP
  



実行時にcommandやoption等の修飾キーが必要な場合は、
KeyCode::該当キー,ModifierFlag::修飾キーとカンマの後に修飾キーの記述を加えます。

例)マウスカーソル直下のウィンドウの要素を全てコピー

  
    __KeyToKey__KeyCode::W,ModifierFlag::EXTRA1,
    KeyCode::VK_MOUSEKEY_BUTTON_LEFT,
    KeyCode::A,ModifierFlag::COMMAND_L,
    KeyCode::C,ModifierFlag::COMMAND_L
  



複数の修飾キーを使用する場合は、
KeyCode::該当キー,ModifierFlag::修飾キー | ModifierFlag::修飾キーと修飾キーをパイプで繋げます。

例)現在の行を削除

  
    __KeyToKey__KeyCode::DELETE, ModifierFlag::EXTRA1,
    KeyCode::CURSOR_RIGHT, ModifierFlag::COMMAND_L,
    KeyCode::CURSOR_UP, ModifierFlag::SHIFT_L,
    KeyCode::CURSOR_RIGHT, ModifierFlag::SHIFT_L | ModifierFlag::COMMAND_L,
    KeyCode::DELETE
  

キーコードについては公式ドキュメント一覧がありますので、こちらをご参照ください。
日本語配列キーボードの場合は、ものにより
「JIS_」という名前が付いたものが該当します。
またキーストロークだけでなく、マウスクリック等を使用することも可能です。

一覧からキーを見つけられない場合は、デバックモードを使用することによりキーを捕捉できます。
Karabiner設定画面の
「Misc & Uninstall」を開き、Debugセクションの「Launch Console.app」「Toggle Debug Mode」ボタンをそれぞれクリックします。

Karabiner設定画面の「Misc & Uninstall」を開き、Debugセクションの「Launch Console.app」・「Toggle Debug Mode」ボタンをそれぞれクリックします

デバッグモードに入った状態で何かキーを押下するとコンソールにログが表示されますので、そこからキーIDを取得します。

デバッグモードに入った状態で何かキーを押下するとコンソールにログが表示されますので、そこからキーIDを取得します

英数キーをベースにするのであれば以上の情報で十分かと思いますが、更にカスタマイズをしたい場合は公式ドキュメントの他、下記記事を参考にしていただければと思います。

まとめ



いかがでしょうか?

最初のみ設定や記法を覚えるのが少し大変かもしれませんが、そこを乗り越えればストレスフリーの素晴らしいPCライフが待っています。
初めから全て設定するよりも、日々何か不便に感じたら1つずつ追加していくと、無理がなくて良いでしょう。
搭載されているキーの数だけマクロを設定できるので……あなたの効率化の可能性は無限大ですよ!

「気持ち悪い」とか「変態」とか言われ始めたら、あなたが正しい道を進めている証拠です。

関連書籍




categories:

関連記事