blog.xicolotic

Macでファンクションキー2回押しをショートカットに設定する

Macデフォルトではできない(らしい?)装飾キーの2回押しのショートカット。
OS X用のキーボードカスタマイズツール「Karabiner」を使って設定してみたのでメモ。

Karabiner
https://pqrs.org/osx/karabiner/index.html.ja

何でやろうと思ったのか?
クリップボード管理アプリのショートカットをWin、Macで揃えたかったのです。

Winで「ペースター」、Macで「ClipMenu」を使っているのですが、
ペースターのショートカットが非常に単純明快。

クリップボード展開→Ctrl2回。つまり、キーボードの左下端を2回。
スニペット展開→Shift2回。つまり、キーボードの左下端から1つ上を2回。

どんなに疲れてても、このショートカットなら間違えずに押せる。
Winに向かってて、1分に1回はこのショートカット押してる。
なので、Macでも同じ使用感にしたかったのです。

設定ファイルprivate.xmlに置き換えたいショートカットを設定

KarabinerのPreferencesメニューから「Misc & Uninstall」、「Custom Setting」の「Open private.xml」をクリック。

private.xmlの格納先が開くので、お好みのエディタで開いて編集します。
デフォルトでは<root>~</root>が空なので、そこに<item>~</item>を2つ追加する形ですね。


<?xml version="1.0"?>
<root>
<item>
<name>Double-caps-tap to open clipboard</name>
<identifier>xicolotic.double-tap-caps-to-open-clipboard</identifier>
<autogen>--DoublePressModifier-- KeyCode::OPTION_L, KeyCode::OPTION_L, KeyCode::V, ModifierFlag::SHIFT_L, ModifierFlag::COMMAND_L</autogen>
</item>
<item>
<name>Double-Shift-tap to open snipets</name>
<identifier>xicolotic.double-tap-shift-to-open-snipets</identifier>
<autogen>--DoublePressModifier-- KeyCode::SHIFT_L, KeyCode::SHIFT_L, KeyCode::, ModifierFlag::SHIFT_L, ModifierFlag::COMMAND_L</autogen>
</item>
</root>

<autogen>が置き換えるショートカットの内容です。「--DoublePressModifier--」でキー2回押し設定であることを定義、「KeyCode::hoge, KeyCode::fuga」が置き換えたいショートカット、その後が置き換え元のショートカットです。

更新し、有効に。

Preferencesメニューから「Change Key」、右上の「Reload XML」ボタンをクリック。
一番上に2つ項目が追加されるので、チェックを入れて有効にします。
項目名はprivate.xmlの<identifier>で設定したものになるので、わかりやすい名前にしておいた方が良いですね。

補足

私の環境では、CapsLockキーがoptionとして機能するように設定しています。
本来の用途で使うこともあまり無い、むしろ間違えて押して困る事の方が多いので。
これで更に使用感がペースターに近づく。

これはMacのデフォルトの機能で設定します。
「システム環境設定」→「キーボード」→「キーボード」。
右下の「装飾キー」ボタンを押した先でCapsLockのマッピングをOptionに変更します。

この設定をしている場合、CapsLock2回、もしくはoptionキー2回のいずれでもクリップボード履歴が展開します。
ただし、CapsLock +optionではダメみたいです。