Skip to content

Instantly share code, notes, and snippets.

@mmizutani
Last active June 30, 2021 04:51
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 1 You must be signed in to fork a gist
  • Save mmizutani/83374181c712d4bb0978 to your computer and use it in GitHub Desktop.
Save mmizutani/83374181c712d4bb0978 to your computer and use it in GitHub Desktop.
Karabiner custom keyboard mappings for HHKB Professional 2 and Logitech K810 on Mac OSX
<!-- ~/Library/Application\ Support/Karabiner/private.xml -->
<!-- https://gist.github.com/mmizutani/83374181c712d4bb0978 -->
<?xml version="1.0"?>
<root>
<devicevendordef>
<vendorname>PFU</vendorname>
<vendorid>0x0853</vendorid>
</devicevendordef>
<deviceproductdef>
<productname>HHKB_PRO_2</productname>
<productid>0x0100</productid>
</deviceproductdef>
<deviceproductdef>
<productname>LOGITECH_K810</productname>
<productid>0xb319</productid>
</deviceproductdef>
<item>
<name>For All Devices</name>
<item>
<name>Change Single Option_L/Option_R to Control + Up/Down</name>
<identifier>remap.custom_option_lr_to_control_updown</identifier>
<autogen>__KeyOverlaidModifier__ KeyCode::OPTION_L, KeyCode::OPTION_L, KeyCode::CURSOR_UP, ModifierFlag::CONTROL_L</autogen>˚
<autogen>__KeyOverlaidModifier__ KeyCode::OPTION_R, KeyCode::OPTION_R, KeyCode::CURSOR_DOWN, ModifierFlag::CONTROL_L</autogen>
</item>
</item>
<item>
<name>For HHKB Pro 2 US</name>
<item>
<name>Use Backquote|Tilda|Del as Delete and Delete|BS as Backspace</name>
<appendix>This mapping assumes that the 2nd DIP switch (Mac mode) is enabled and the 3rd (DEL/BS) is disabled.</appendix>
<item>
<name>Change Backquote to Delete</name>
<identifier>remap.hhkbp2us_backquote_to_delete</identifier>
<device_only>DeviceVendor::PFU, DeviceProduct::HHKB_PRO_2</device_only>
<autogen>__KeyToKey__ KeyCode::BACKQUOTE, KeyCode::FORWARD_DELETE</autogen>
</item>
</item>
<item>
<name>Use Backquote|Tilda|Del as Backspace and Delete|BS as Delete</name>
<appendix>This mapping assumes that the 2nd DIP switch (Mac mode) is enabled and the 3rd (DEL/BS) is disabled. Disable this option if you enable "Change Backquote to Delete" above.</appendix>
<item>
<name>Change Backquote Backspace and Backspace to Delete</name>
<identifier>remap.hhkbp2us_backquote_to_backspace</identifier>
<block>
<device_only>DeviceVendor::PFU, DeviceProduct::HHKB_PRO_2</device_only>
<autogen>__KeyToKey__ KeyCode::BACKQUOTE, KeyCode::DELETE</autogen>
<autogen>__KeyToKey__ KeyCode::DELETE, KeyCode::FORWARD_DELETE</autogen>
</block>
</item>
</item>
<item>
<name>Change Option_R + hjkl to Arrow keys</name>
<identifier>remap.hhkbp2us_alt_hjkl_to_arrow</identifier>
<autogen>__KeyToKey__ KeyCode::H, ModifierFlag::OPTION_R, KeyCode::CURSOR_LEFT</autogen>
<autogen>__KeyToKey__ KeyCode::J, ModifierFlag::OPTION_R, KeyCode::CURSOR_DOWN</autogen>
<autogen>__KeyToKey__ KeyCode::K, ModifierFlag::OPTION_R, KeyCode::CURSOR_UP</autogen>
<autogen>__KeyToKey__ KeyCode::L, ModifierFlag::OPTION_R, KeyCode::CURSOR_RIGHT</autogen>
<device_only>DeviceVendor::PFU, DeviceProduct::HHKB_PRO_2</device_only>
</item>
<item>
<name>Change Option_L+1...= to F1...F12 Keys</name>
<identifier>remap.hhkbp2us_optl_plus_num_to_f1_f12</identifier>
<autogen>__KeyToKey__ KeyCode::KEY_1, ModifierFlag::OPTION_L, KeyCode::F1</autogen>
<autogen>__KeyToKey__ KeyCode::KEY_2, ModifierFlag::OPTION_L, KeyCode::F2</autogen>
<autogen>__KeyToKey__ KeyCode::KEY_3, ModifierFlag::OPTION_L, KeyCode::F3</autogen>
<autogen>__KeyToKey__ KeyCode::KEY_4, ModifierFlag::OPTION_L, KeyCode::F4</autogen>
<autogen>__KeyToKey__ KeyCode::KEY_5, ModifierFlag::OPTION_L, KeyCode::F5</autogen>
<autogen>__KeyToKey__ KeyCode::KEY_6, ModifierFlag::OPTION_L, KeyCode::F6</autogen>
<autogen>__KeyToKey__ KeyCode::KEY_7, ModifierFlag::OPTION_L, KeyCode::F7</autogen>
<autogen>__KeyToKey__ KeyCode::KEY_8, ModifierFlag::OPTION_L, KeyCode::F8</autogen>
<autogen>__KeyToKey__ KeyCode::KEY_9, ModifierFlag::OPTION_L, KeyCode::F9</autogen>
<autogen>__KeyToKey__ KeyCode::KEY_0, ModifierFlag::OPTION_L, KeyCode::F10</autogen>
<autogen>__KeyToKey__ KeyCode::MINUS, ModifierFlag::OPTION_L, KeyCode::F11</autogen>
<autogen>__KeyToKey__ KeyCode::EQUAL, ModifierFlag::OPTION_L, KeyCode::F12</autogen>
</item>
<item>
<name>Change Option_R+1...= to F1...F12 Keys</name>
<identifier>remap.hhkbp2us_optr_plus_num_to_f1_f12</identifier>
<autogen>__KeyToKey__ KeyCode::KEY_1, ModifierFlag::OPTION_R, KeyCode::F1</autogen>
<autogen>__KeyToKey__ KeyCode::KEY_2, ModifierFlag::OPTION_R, KeyCode::F2</autogen>
<autogen>__KeyToKey__ KeyCode::KEY_3, ModifierFlag::OPTION_R, KeyCode::F3</autogen>
<autogen>__KeyToKey__ KeyCode::KEY_4, ModifierFlag::OPTION_R, KeyCode::F4</autogen>
<autogen>__KeyToKey__ KeyCode::KEY_5, ModifierFlag::OPTION_R, KeyCode::F5</autogen>
<autogen>__KeyToKey__ KeyCode::KEY_6, ModifierFlag::OPTION_R, KeyCode::F6</autogen>
<autogen>__KeyToKey__ KeyCode::KEY_7, ModifierFlag::OPTION_R, KeyCode::F7</autogen>
<autogen>__KeyToKey__ KeyCode::KEY_8, ModifierFlag::OPTION_R, KeyCode::F8</autogen>
<autogen>__KeyToKey__ KeyCode::KEY_9, ModifierFlag::OPTION_R, KeyCode::F9</autogen>
<autogen>__KeyToKey__ KeyCode::KEY_0, ModifierFlag::OPTION_R, KeyCode::F10</autogen>
<autogen>__KeyToKey__ KeyCode::MINUS, ModifierFlag::OPTION_R, KeyCode::F11</autogen>
<autogen>__KeyToKey__ KeyCode::EQUAL, ModifierFlag::OPTION_R, KeyCode::F12</autogen>
</item>
</item>
<item>
<!-- See https://github.com/tekezo/Karabiner/blob/master/src/core/server/Resources/include/checkbox/standards/function.xml -->
<!-- https://pqrs.org/osx/karabiner/xml.html.en -->
<!-- https://github.com/tekezo/Karabiner/blob/master/src/bridge/generator/keycode/data/KeyCode.data -->
<!-- http://www.logitech.com/assets/46511/bluetooth-illuminated-keyboard-k810.pdf#page=10 -->
<name>For Logitech K810</name>
<item>
<name>Change Fn+Function to Function (works for F4-F10 only)</name>
<identifier>remap.logitechk810_fn_and_fkeys_to_fkeys</identifier>
<appendix>* Application Switch to F4</appendix>
<appendix>* Keyboard Backlit Low to F5</appendix>
<appendix>* Keyboard Backlit High to F6</appendix>
<appendix>* Music Play/Pause to F7</appendix>
<appendix>* Volume Mute to F8</appendix>
<appendix>* Volume Down to F9</appendix>
<appendix>* Volume Up to F10</appendix>
<block>
<device_only>DeviceVendor::LOGITECH, DeviceProduct::LOGITECH_K810</device_only>
<autogen>__KeyToKey__ ConsumerKeyCode::KEYBOARDLIGHT_LOW, KeyCode::F5</autogen>
<autogen>__KeyToKey__ ConsumerKeyCode::KEYBOARDLIGHT_HIGH, KeyCode::F6</autogen>
<autogen>__KeyToKey__ ConsumerKeyCode::MUSIC_PLAY, KeyCode::F7</autogen>
<autogen>__KeyToKey__ ConsumerKeyCode::VOLUME_MUTE, KeyCode::F8</autogen>
<autogen>__KeyToKey__ ConsumerKeyCode::VOLUME_DOWN, KeyCode::F9</autogen>
<autogen>__KeyToKey__ ConsumerKeyCode::VOLUME_UP, KeyCode::F10</autogen>
</block>
</item>
<item>
<name>Change Option_L to Command_L</name>
<identifier>remap.logitechk810_optionl_to_commandl</identifier>
<autogen>__KeyToKey__ KeyCode::OPTION_L, KeyCode::COMMAND_L</autogen>
<device_only>DeviceVendor::LOGITECH, DeviceProduct::LOGITECH_K810</device_only>
</item>
<item>
<name>Change Option_R to Command_R</name>
<identifier>remap.logitechk810_optionr_to_commandr</identifier>
<autogen>__KeyToKey__ KeyCode::OPTION_R, KeyCode::COMMAND_R</autogen>
<device_only>DeviceVendor::LOGITECH, DeviceProduct::LOGITECH_K810</device_only>
</item>
<item>
<name>Change Command_L to Option_L</name>
<identifier>remap.logitechk810_commandl_to_optionl</identifier>
<autogen>__KeyToKey__ KeyCode::COMMAND_L, KeyCode::OPTION_L</autogen>
<device_only>DeviceVendor::LOGITECH, DeviceProduct::LOGITECH_K810</device_only>
</item>
</item>
<item><name>──────────────────────────────</name></item>
</root>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment