プレイヤーズ・ハイ

 雑多な日記

HHKB BT を Karabiner でいい感じにセットアップする

HHKB BT が接続されたときにだけ起動される Private.xml を作成し上書きする.

Vendor ID と Product ID の調べ方

System Information を起動

Bluetooth のところに出ている.

  • Vendor ID: 0x04FE
  • Product ID: 0x0202

Private.xml

Karabiner の Misc & Uninstall から Private.xml を開き以下をコピペ.

HHKB BT のキーの場所 元々 変更後
一番右上 `~ (バッククォート・チルダ) delete
一番右上の左 \| (バックスラッシュ・パイプ) Esc
一番右上の下 delete \| (バックスラッシュ・パイプ)
Esc Esc `~ (バッククォート・チルダ)

Mac の US キーボードっぽく

このままだと Esc が使えないので,control + [ で Esc の代替とします.

【追記】

一番右上の左,バックスラッシュ・パイプを delete ではなく,Esc としました.

<?xml version="1.0"?>
<root>
  <devicevendordef>
    <vendorname>PFU</vendorname>
    <vendorid>0x04FE</vendorid>
  </devicevendordef>

  <deviceproductdef>
    <productname>HHKB_BT</productname>
    <productid>0x0202</productid>
  </deviceproductdef>

  <item>
    <name>Backslash(\) to Escape in HHKB BT</name>
    <identifier>private.deviceproductdef.bs_esc</identifier>
    <device_only>DeviceVendor::PFU, DeviceProduct::HHKB_BT</device_only>
    <autogen>__KeyToKey__ KeyCode::BACKSLASH, KeyCode::ESCAPE</autogen>
  </item>

  <item>
    <name>Delete to Backslash(\) in HHKB BT</name>
    <identifier>private.deviceproductdef.dlt_bs</identifier>
    <device_only>DeviceVendor::PFU, DeviceProduct::HHKB_BT</device_only>
    <autogen>__KeyToKey__ KeyCode::DELETE, KeyCode::BACKSLASH</autogen>
  </item>

  <item>
    <name>Backquote(`) to Delete in HHKB BT</name>
    <identifier>private.deviceproductdef.esc_bs</identifier>
    <device_only>DeviceVendor::PFU, DeviceProduct::HHKB_BT</device_only>
    <autogen>__KeyToKey__ KeyCode::BACKQUOTE, KeyCode::DELETE</autogen>
  </item>

  <item>
    <name>Escape to Backquote(`) in HHKB BT</name>
    <identifier>private.deviceproductdef.esc_bq</identifier>
    <device_only>DeviceVendor::PFU, DeviceProduct::HHKB_BT</device_only>
    <autogen>__KeyToKey__ KeyCode::ESCAPE, KeyCode::BACKQUOTE</autogen>
  </item>

  <item>
     <name>Ctrl-L+[ also works as Escape in HHKB BT</name>
     <identifier>private.ctrl_[_to_escape</identifier>
     <device_only>DeviceVendor::PFU, DeviceProduct::HHKB_BT</device_only>
     <autogen>__KeyToKey__ KeyCode::BRACKET_LEFT, ModifierFlag::CONTROL_L, KeyCode::ESCAPE</autogen>
   </item>

</root>

【追記】

やっぱり Esc の位置が代わるのはかなりストレスだったので,以下のように変更しました. control + [ のメタキーは残しています.

HHKB BT のキーの場所 元々 変更後
一番右上 `~ (バッククォート・チルダ) delete
一番右上の左 \| (バックスラッシュ・パイプ) `~ (バッククォート・チルダ)
一番右上の下 delete \| (バックスラッシュ・パイプ)
Esc Esc Esc(そのまま)
<?xml version="1.0"?>
<root>
  <devicevendordef>
    <vendorname>PFU</vendorname>
    <vendorid>0x04FE</vendorid>
  </devicevendordef>

  <deviceproductdef>
    <productname>HHKB_BT</productname>
    <productid>0x0202</productid>
  </deviceproductdef>

  <item>
    <name>Backslash(\) to Backquote(`) in HHKB BT</name>
    <identifier>private.deviceproductdef.bs_bq</identifier>
    <device_only>DeviceVendor::PFU, DeviceProduct::HHKB_BT</device_only>
    <autogen>__KeyToKey__ KeyCode::BACKSLASH, KeyCode::BACKQUOTE</autogen>
  </item>

  <item>
    <name>Delete to Backslash(\) in HHKB BT</name>
    <identifier>private.deviceproductdef.dlt_bs</identifier>
    <device_only>DeviceVendor::PFU, DeviceProduct::HHKB_BT</device_only>
    <autogen>__KeyToKey__ KeyCode::DELETE, KeyCode::BACKSLASH</autogen>
  </item>

  <item>
    <name>Backquote(`) to Delete in HHKB BT</name>
    <identifier>private.deviceproductdef.esc_bs</identifier>
    <device_only>DeviceVendor::PFU, DeviceProduct::HHKB_BT</device_only>
    <autogen>__KeyToKey__ KeyCode::BACKQUOTE, KeyCode::DELETE</autogen>
  </item>

  <item>
     <name>Ctrl-L+[ also works as Escape in HHKB BT</name>
     <identifier>private.ctrl_[_to_escape</identifier>
     <device_only>DeviceVendor::PFU, DeviceProduct::HHKB_BT</device_only>
     <autogen>__KeyToKey__ KeyCode::BRACKET_LEFT, ModifierFlag::CONTROL_L, KeyCode::ESCAPE</autogen>
   </item>

</root>