FLINTERS Engineer's Blog

FLINTERSのエンジニアによる技術ブログ

これでストレスフリー!MacBookと外付けキーボードを同じキーマップで利用する方法

テニスと麻雀好きな@toshikimiyagawaです。

最近はMacを利用するエンジニア増えてきましたね。
私も2年近く前からMacを使っています。

MacBookを使ってるけど、家や社内ではもっぱら外付けキーボード」
そんな人も少なくないのではないでしょうか。

弊社メンバーも半分弱は外付けキーボード利用しています。
外付けキーボードを使う際に困るのが、macのキーボードとwindowsのキーボードではkeymapが違うこと。
特に私はemacsキーバインドを多用するので、そんなの我慢できるわけありません。
というわけで、今回はキーマップのカスタマイズ方法の紹介です。

目標のキーマップ

もちろんノートを利用するときにも支障がないようにというのは大前提。
外付けキーボード、macキーボードで以下のようなキーバインドにすることが目標となります。

IMG_0944.png

IMG_0946.jpg

controlはAの右、capslockはいらない、左下はcommandが良い。
英数キーの左がoption、残った外付けキーボードのwindowsキーmacキーボードのoptionキーは使わないのももったいないのでfnキーを割り当てます。
別アプリでoption+fn+←で選択したwindowを画面の左半分に表示とかできるようにしています。

必要なアプリケーション

以上を実現するために必要なのがSeilとKarabinerです。
インストール方法は調べればすぐに出てくるので省略します。

Seilの設定

以下のようにチェックを入れてキーコードを指定します。

Change the capslock key : 80
Enable NFER Key on PC keyboard : 102
Enable XFER Key on PC keyboard : 104

これでcapslockがF19に(この後また別のキーに割り当てます)なり、
さらに変換キー、無変換キーが使えるようになります。

Karabinerの設定

Misc&UninstallタブからOpen private.xmlを選択し、
以下の通り入力し保存します。

>|sh|
<?xml version="1.0"?>
<root>
<item>
<name>Apple and Windows keyboard</name>
<item>
<name>Apple and Windows keyboard</name>
<identifier>private.windows_keyboard_hack</identifier>
<block>
<device_only>DeviceVendor::APPLE_INC, DeviceProduct::ANY</device_only>
<autogen>--KeyToKey-- KeyCode::F19, KeyCode::COMMAND_L</autogen>
<autogen>--KeyToKey-- KeyCode::COMMAND_L, KeyCode::OPTION_L</autogen>
<autogen>--KeyToKey-- KeyCode::OPTION_L, KeyCode::FN</autogen>
</block>
<block>
<device_not>DeviceVendor::APPLE_INC, DeviceProduct::ANY</device_not>
<autogen>--KeyToKey-- KeyCode::F19, KeyCode::CONTROL_L</autogen>
<autogen>--KeyToKey-- KeyCode::CONTROL_L, KeyCode::COMMAND_L</autogen>
<autogen>--KeyToKey-- KeyCode::COMMAND_L, KeyCode::FN</autogen>
</block>
</item>
</item>
</root>
|