Karabinerのpravate.xmlの記述方法!さらに深いキーリマップ方法、マクロ も組める!

<記述の正確性に関してはあくまでも公式リファレンスページを参考にしてください>

 

<追記: 名前に関しては日本語表記でも動作するようです。>

先日、realforce英語配列テンキーレスの変荷重、87Uを購入しました☆

f:id:WhiTeFox_jp:20160502103458j:plain

それのレビュー に関してはもう少し触って試してからにしようと思うんですが、

realforcewindowsキーボードですから、Macで使うにあたって、karabinerを使うとキーボードのキーリマップが出来ますよね☆

f:id:WhiTeFox_jp:20160420232816p:plain

Karabiner - OS X用のソフトウェア

 

でも、かなり沢山の用意された設定項目の中にも自分の望みの設定項目がないこともあります。。

そんな時は自分で命令文を記述しちゃいましょう!

今回はその解説の記事になります☆

 

 

最初にevent viewerを開きます☆event viewerはkaravinerのメインウィンドウの上部のタブの「misc&uninstall」から表示出来ます☆

f:id:WhiTeFox_jp:20160420234544p:plain

f:id:WhiTeFox_jp:20160420234756p:plain

 

event viewrでは今どんなキーが押されたのか、離されたのかわかるので、これを参考に命令文を記述していきます☆これかなり使います☆

Event viewerを参考にキーコード(何が押されているか)を確認し、命令文を記述したら、動作を確認します。

private.xmlの記述がエラーの場合はkarabiner起動時にエラーメッセージが出ると思います。

右側のKey codeのところは、例えば左コマンドキーは命令文の中では「COMMAND_L」と記述するというヒントになっています☆

他のキーに関してはこちらのリファレンスを参考にしてください。

private.xml Reference Manual - Karabiner - OS X用のソフトウェア

 

「code」の部分に数字も合わせて表示されていますが、数字部分は基本的には必要ありません。

「mouse area」上でマウスをクリックすると今マウスのどのボタンが押されたのかわかります。

f:id:WhiTeFox_jp:20160420234525p:plain

 

さてkarabinerでは「private.xml」 というファイルに同じく「 misc&uninstall」のタブからアクセス出来ますのでそれを開きます。これが自分なりの設定を記述するテキストファイルになります。

f:id:WhiTeFox_jp:20160502014418p:plain

 

さて例文です。

こちらの記述はrealforce(87Uは英語配列です)のスペースバーのすぐ横の左ALTキーをコマンドキーに変更して、且つそれを空打ちした時には英数キーとして英語入力に切り替えるという命令文です☆

コピー&ペーストなど、他のキーを組み合わせて押した時には英数に切り替えはされず、単体のコマンドキーとして機能します。

 

f:id:WhiTeFox_jp:20160502105620j:plain

<item>
<name>left alt to command L EISUU once</name>
<identifier>LEFT_ALT_COMMAND_L_EISUU</identifier>
<autogen>
__KeyOverlaidModifier__
KeyCode::OPTION_L,
KeyCode::COMMAND_L,
KeyCode::JIS_EISUU, ModifierFlag::NONE,
</autogen>
</item>

 

上の記述の解説をします。

まず全て英語で記述します。

praivate.xml は最初は

<?xml version="1.0"?>
<root>

</root>

で囲まれています。

<item></item>は1つの命令文全体を包んでいます。

<name></name>はその命令文の名前です。

<identifier></identifier>はその命令文の固有のIDです。

(被らなければこれは結構自由に設定してよいみたいです。)

<autogen></autogen>は命令文の内容を記述します。

なのでparivate.xml及び命令文の共通の約束事としては、

 

<?xml version="1.0"?>
<root>

 

<item>

<name>名前</name>

<identifier>ID</identifier>

<autogen>

記述の内容

</autogen>

</item>

 

</root>

となります☆

 

複数ある場合には、

 <?xml version="1.0"?>
<root>

 

<item>

<name>1つめ</name>

<identifier>ID</identifier>

<autogen>

記述の内容

</autogen>

</item>

 

<item>

<name>2つめ</name>

<identifier>ID</identifier>

<autogen>

記述の内容

</autogen>

</item>

 

</root>

・・・と続いていくわけですね☆

 

例えば、あるキーを押すと違うキーが入力されるという場合は比較的簡単で

記述の内容(autogen)に__KeyToKey__を使います。

例えばコマンドを押すとHが入力されるという内容の場合、

<item>

<name>left command to H key</name>

<identifier>left_H</identifier>
<autogen>
__KeyToKey__
KeyCode::COMMAND_L,
KeyCode::H
</autogen>
</item>

となります☆

 

今回のような左右のオルトキーをコマンドキーに変更し、尚且つ空打ちする時は英数に入力に変更する場合には__KeyOverlaidModifier__を使います。

この種類が沢山あるわけですね☆karabinerではマウスのようなポインティングデバイスのキーリマップも可能で、この場合には--PointingButtonToKey--を使います。

この種類に関しては

private.xml Reference Manual - Karabiner - OS X用のソフトウェア

に沢山リファレンスが載っています☆

 

ですのでこのリファレンスの中から自分が使いたい感じを想像して規則性とか探りながらやってみる感じになります。

そしてふと見ていると、リファレンスページに気になる例文がありました。

Aキーを左右どちらかのオプションキーと押すと「Hello, World!」 と入力されると!

 

<item>
<name>My Hello, World!</name>
<identifier>private.string_input1</identifier>
<autogen>
__KeyToKey__
KeyCode::A, MODIFIERFLAG_EITHER_LEFT_OR_RIGHT_OPTION | ModifierFlag::NONE,

KeyCode::H, ModifierFlag::SHIFT_L,
KeyCode::E,
KeyCode::L,
KeyCode::L,
KeyCode::O,
KeyCode::COMMA,
KeyCode::SPACE,
KeyCode::W, ModifierFlag::SHIFT_L,
KeyCode::O,
KeyCode::R,
KeyCode::L,
KeyCode::D,
<!-- ! is shift-1 -->
KeyCode::1, ModifierFlag::SHIFT_L,
</autogen>
</item>

 

よく見てみると、単に入力の順番を記述しているだけですが、ということはマクロも組めるんでは???と思ったんです。なのでやってみました。

自分はrealforceのテンキーレスのカーソルキーの上のキー、HOMEとかENDのキーに「コマンド+↑」や「コマンド+↓」を割り当てて、簡易HOME、ENDキーを作ってみました☆自分はこのキーを普段使わないですけど、使うでしょうかね?(笑)

 その命令文がこれです。

 

<item>
<name>home to COMMAND UP</name>
<identifier>HOME_COMMAND_UP</identifier>
<autogen>
__KeyToKey__
KeyCode::HOME, ModifierFlag::NONE,
KeyCode::CURSOR_UP, ModifierFlag::COMMAND_L,
</autogen>
</item>

 

この命令文ではHOMEボタンをカーソルアップに設定、同時にコマンドLが入力されるという感じになっています。なので、ModifierFlag::というのは同時入力されるという意味で大丈夫そうです☆

event viewerを見ると、入力順序は

f:id:WhiTeFox_jp:20160502020930p:plain

「コマンドが押され、↑が押され、↑が離され、コマンドが離される」という順序で入力されます。

 

今度はMacのOSのショートカットであるスクリーンショットを、これまた普段使わない「Page downキー」に割り当ててみます。

スクリーンショットはコマンド+シフト+4ですから、これを命令文で記述します。

 

<item>
<name>PAGEDOWN TO SCREEN SHOT AS FILE</name>
<identifier>SCREEN SHOT_FILE</identifier>
<autogen>
__KeyToKey__
KeyCode::PAGEDOWN, ModifierFlag::NONE,
KeyCode::4,ModifierFlag::COMMAND_L| ModifierFlag::SHIFT_L,

</autogen>

 

Page downを4に変更、同時にコマンドLとシフトLが押されるようにする。

結構単純ですね☆

ここでのポイントは今回のようにどんどんキーを組み合わせて合わせて行く場合には「ModifierFlag::」を「|」で区切ります☆こういうこともリファレンスページ書いてあるので参考にしてみてくださいね☆

 

<参考 記述例 集> 

*名前などはわかりやすく変えるといいと思います*

「マウスの横ボタン(5)を左コマンドキーとして使用」

<item>
<name>Mouse button5 to command L</name>
<identifier>Mouse_button5_to_command_L</identifier>
<autogen>
--PointingButtonToKey--
PointingButton::BUTTON5, ModifierFlag::NONE,
KeyCode::COMMAND_L
</autogen>
</item>

 

マウスの横ボタン(4)を左シフトキーとして使用

<item>
<name>Mouse button4 to SHIFT L</name>
<identifier>Mouse_button_to_SHIFT_L</identifier>
<autogen>
--PointingButtonToKey--
PointingButton::BUTTON4, ModifierFlag::NONE,
KeyCode::SHIFT_L
</autogen>
</item>
<item>

 

左ALTキーを左コマンドキーとして使用、空打ちの場合は英数に入力切り替えする

<item>
<name>left alt to command L EISUU once</name>
<identifier>LEFT_ALT_COMMAND_L_EISUU</identifier>
<autogen>
__KeyOverlaidModifier__
KeyCode::OPTION_L,
KeyCode::COMMAND_L,
KeyCode::JIS_EISUU, ModifierFlag::NONE,
</autogen>
</item>

 

右オルトキーを右コマンドキーとして使用、空打ちの場合はローマ字入力に切り替える

<item>
<name>right alt to command R KANA once</name>
<identifier>RIGHT_ALT_COMMAND_R_KANA</identifier>
<autogen>
__KeyOverlaidModifier__
KeyCode::OPTION_R,
KeyCode::COMMAND_R,
KeyCode::JIS_KANA, ModifierFlag::NONE,
</autogen>
</item>

 

<複数同時押しの応用>page upキーを押すとクリップボードスクリーンショットを送る(コマンド+シフト+コントロール+4の動作です)

<item>
<name>PAGEUP TO SCREEN SHOT TO CLIPBOARD</name>
<identifier>SCREEN SHOT</identifier>
<autogen>
__KeyToKey__
KeyCode::PAGEUP, ModifierFlag::NONE,
KeyCode::4,ModifierFlag::COMMAND_L| ModifierFlag::SHIFT_L| ModifierFlag::CONTROL_L,

</autogen>

</item>

 

日本語配列のキーボードに関してはこの記事の前半部分に無変換キーや変換キーなどを認識させる手順を紹介しています☆その他に関してはやることに違いはありません☆

whitefox-jp.hatenablog.com