Skip to content

Instantly share code, notes, and snippets.

@patrickwelker
Last active February 26, 2018 14:27
Show Gist options
  • Save patrickwelker/77531e4b58c609326fa5559bdf3a3667 to your computer and use it in GitHub Desktop.
Save patrickwelker/77531e4b58c609326fa5559bdf3a3667 to your computer and use it in GitHub Desktop.
Karabiner Setup for Evoluent Vertical Mouse (= so good. Stay away from High Sierra as long as you can.) Can be included in your `private.xml` via `<include path="{{ ENV_HOME }}/Scripts/Karabiner/evoluent-vertical-mouse.xml" />`.
<?xml version="1.0"?>
<root>
<item>
<name>Evoluent VerticalMouse</name>
<appendix>All customizations only apply for the Evoluent VerticalMouse.</appendix>
<!--
Hold Key Modifiers
- Button 1: none
- Button 6: ⌘⌥⇧⌃
- Button 4: ⌘⌥
- Button 2: ⌥⌃
- Button 3: ⌘⇧
- Button 5: none
-->
<devicevendordef>
<vendorname>EVOLUENT</vendorname>
<vendorid>0x1a7c</vendorid>
</devicevendordef>
<deviceproductdef>
<productname>VERTICALMOUSE</productname>
<productid>0x0191</productid>
</deviceproductdef>
<vkopenurldef>
<name>KeyCode::VK_OPEN_URL_SHELL_Paste_MD_URL</name>
<url type="shell">
<![CDATA[
osascript -e 'tell application "Keyboard Maestro Engine" to do script "URL: Paste MD Link"'
]]>
</url>
</vkopenurldef>
<vkopenurldef>
<name>KeyCode::VK_OPEN_URL_SHELL_Paste_URL</name>
<url type="shell">
<![CDATA[
osascript -e 'tell application "Keyboard Maestro Engine" to do script "URL: Paste URL"'
]]>
</url>
</vkopenurldef>
<vkopenurldef>
<name>KeyCode::VK_OPEN_URL_SHELL_SearchLink</name>
<url type="shell">
<![CDATA[
osascript -e 'tell application "Keyboard Maestro Engine" to do script "Search Selection with SearchLink"'
]]>
</url>
</vkopenurldef>
<vkopenurldef>
<name>KeyCode::VK_OPEN_URL_SHELL_ImageLink</name>
<url type="shell">
<![CDATA[
osascript -e 'tell application "Keyboard Maestro Engine" to do script "Generate MD Image Link"'
]]>
</url>
</vkopenurldef>
<modifierdef>BUTTON4_MOD</modifierdef>
<modifierdef>BUTTON6_MOD</modifierdef>
<modifierdef>BUTTON2_MOD</modifierdef>
<modifierdef>BUTTON3_MOD</modifierdef>
<item>
<name>Traditional XML</name>
<item>
<name>Button 4 as OS X App Switcher</name>
<appendix>-------------------------------------------------------------------------------------------------------------------------</appendix>
<appendix>Click: Show Desktop (Command-F2 via BetterTouchTool)</appendix>
<appendix>2x Click: Minimizes the window under the cursor (Hyper-F15 via BetterTouchTool)</appendix>
<appendix>Hold: Next Tab (Hold + Button 1); Previous Tab (Hold + Button 2)</appendix>
<identifier>private.button_4_triple_function_app_switcher</identifier>
<device_only>DeviceVendor::EVOLUENT, DeviceProduct::VERTICALMOUSE</device_only>
<!-- Click, double press and hold -->
<autogen>
__HoldingKeyToKey__
<!-- define button -->
PointingButton::BUTTON4,
<!-- ======================================== -->
@begin
KeyCode::VK_NONE,
<!-- normal press -->
Option::KEYTOKEY_DELAYED_ACTION,
KeyCode::F2,
ModifierFlag::COMMAND_R,
Option::KEYTOKEY_DELAYED_ACTION_CANCELED_BY, PointingButton::BUTTON4,
<!-- double press -->
KeyCode::F15,
ModifierFlag::COMMAND_R, ModifierFlag::OPTION_R | ModifierFlag::SHIFT_R | ModifierFlag::CONTROL_R,
KeyCode::VK_KEYTOKEY_DELAYED_ACTION_DROP_EVENT,
@end
<!-- ======================================== -->
@begin
<!-- holding -->
KeyCode::COMMAND_R,
@end
</autogen>
<!-- Left click to next app -->
<autogen>
__KeyToKey__
PointingButton::LEFT, ModifierFlag::COMMAND_R,
KeyCode::TAB,
ModifierFlag::COMMAND_R,
</autogen>
<!-- Right click to previous tab -->
<autogen>
__KeyToKey__
PointingButton::RIGHT, ModifierFlag::COMMAND_R,
KeyCode::TAB,
ModifierFlag::COMMAND_R, ModifierFlag::SHIFT_R,
</autogen>
<!-- Quit application -->
<autogen>
__KeyToKey__
PointingButton::MIDDLE, ModifierFlag::COMMAND_R,
KeyCode::Q,
ModifierFlag::COMMAND_R,
</autogen>
<!-- App Expose -->
<autogen>
__KeyToKey__
PointingButton::BUTTON5, ModifierFlag::COMMAND_R,
KeyCode::CURSOR_DOWN,
ModifierFlag::COMMAND_R,
</autogen>
</item>
<modifierdef>BUTTON6</modifierdef>
<item>
<name>Button 6 for Application Switching with Witch (Hypher-R/A)</name>
<appendix>-------------------------------------------------------------------------------------------------------------------------</appendix>
<appendix>"Click": Show Desktop</appendix>
<identifier>private.evoluent_button6_for_app_switch</identifier>
<device_only>DeviceVendor::EVOLUENT, DeviceProduct::VERTICALMOUSE</device_only>
<!-- Base for Witch App Switcher Hold (Button 6 to Hyper) -->
<autogen>
__KeyOverlaidModifier__
PointingButton::BUTTON6, ModifierFlag::NONE,
@begin
KeyCode::COMMAND_R,
ModifierFlag::OPTION_R | ModifierFlag::SHIFT_R | ModifierFlag::CONTROL_R | ModifierFlag::BUTTON6,
@end
<!-- @begin
KeyCode::R, ModifierFlag::COMMAND_R, ModifierFlag::OPTION_R | ModifierFlag::SHIFT_R | ModifierFlag::CONTROL_R, -->
<!-- a hack to release the command key -->
<!-- KeyCode::VK_MODIFIER_BUTTON6,
@end -->
</autogen>
<!-- Next app -->
<autogen>
__KeyToKey__
PointingButton::LEFT, ModifierFlag::BUTTON6,
KeyCode::R,
</autogen>
<!-- Previous app -->
<autogen>
__KeyToKey__
PointingButton::RIGHT, ModifierFlag::BUTTON6,
KeyCode::A,
</autogen>
<!-- Quit application. -->
<autogen>
__KeyToKey__
PointingButton::MIDDLE, ModifierFlag::BUTTON6,
KeyCode::Q, ModifierFlag::COMMAND_R,
</autogen>
<!-- example: button6+button5 to warp mouse cursor. -->
<autogen>
__KeyToKey__
PointingButton::BUTTON5, ModifierFlag::BUTTON6,
KeyCode::VK_OPEN_URL_SHELL_warp_mouse_cursor_position_front_window_center,
</autogen>
</item>
<modifierdef>BUTTON4</modifierdef>
<item>
<name>Button 4 for Application Switching (Alt-Tab)</name>
<identifier>private.evoluent_button4_for_app_switch</identifier>
<device_only>DeviceVendor::EVOLUENT, DeviceProduct::VERTICALMOUSE</device_only>
<!-- Modifier (Alt-Tab) = Button 4 -->
<autogen>
__KeyOverlaidModifier__
PointingButton::BUTTON4, ModifierFlag::NONE,
@begin
KeyCode::COMMAND_L, ModifierFlag::BUTTON4,
@end
@begin
KeyCode::TAB, ModifierFlag::COMMAND_L,
<!-- a hack to release the command key -->
KeyCode::VK_MODIFIER_BUTTON4,
@end
</autogen>
<!-- Left click to next app -->
<autogen>
__KeyToKey__
PointingButton::LEFT, ModifierFlag::BUTTON4,
KeyCode::TAB,
</autogen>
<!-- Right click to previous app -->
<autogen>
__KeyToKey__
PointingButton::RIGHT, ModifierFlag::BUTTON4,
KeyCode::TAB, ModifierFlag::SHIFT_L,
</autogen>
<!-- Quit application. -->
<autogen>
__KeyToKey__
PointingButton::MIDDLE, ModifierFlag::BUTTON4,
KeyCode::Q, ModifierFlag::COMMAND_R,
</autogen>
<!-- example: button4+button5 to warp mouse cursor. -->
<autogen>
__KeyToKey__
PointingButton::BUTTON5, ModifierFlag::BUTTON4,
KeyCode::VK_OPEN_URL_SHELL_warp_mouse_cursor_position_front_window_center,
</autogen>
</item>
</item>
<item><!-- Button 6 -->
<name>Button 6 as Witch App Switcher</name>
<appendix>-------------------------------------------------------------------------------------------------------------------------</appendix>
<appendix>Click: Minimizes the window under the cursor (Hyper-F15 via BetterTouchTool)</appendix>
<appendix>2x Click: Hide all windows (Hyper-F12 via BetterTouchTool)</appendix>
<appendix>Hold + Button 1: Next App (Hyper-R)</appendix>
<appendix>Hold + Button 2: Previous App (Hyper-A)</appendix>
<appendix>Hold + Button 3: Quit App (Hyper-Q)</appendix>
<appendix>Hold + Button 5: Lookup Word under Cursor (Hyper-F14 via BetterTouchTool)</appendix>
<identifier>private.button_6_triple_function_app_switcher</identifier>
<device_only>DeviceVendor::EVOLUENT, DeviceProduct::VERTICALMOUSE</device_only>
<!-- Click, double press and hold -->
<autogen>
__HoldingKeyToKey__
<!-- define button -->
PointingButton::BUTTON6,
<!-- ======================================== -->
@begin
KeyCode::VK_NONE,
<!-- normal press -->
Option::KEYTOKEY_DELAYED_ACTION,
KeyCode::F15,
ModifierFlag::COMMAND_R, ModifierFlag::OPTION_R | ModifierFlag::SHIFT_R | ModifierFlag::CONTROL_R,
Option::KEYTOKEY_DELAYED_ACTION_CANCELED_BY, PointingButton::BUTTON6,
<!-- double press -->
KeyCode::F12,
ModifierFlag::COMMAND_R, ModifierFlag::OPTION_R | ModifierFlag::SHIFT_R | ModifierFlag::CONTROL_R,
KeyCode::VK_KEYTOKEY_DELAYED_ACTION_DROP_EVENT,
@end
<!-- ======================================== -->
@begin
<!-- holding -->
KeyCode::COMMAND_R, ModifierFlag::BUTTON6_MOD,
@end
</autogen>
<!-- Left click to next app -->
<autogen>
__KeyToKey__
PointingButton::LEFT, ModifierFlag::COMMAND_R | ModifierFlag::BUTTON6_MOD,
KeyCode::R,
ModifierFlag::COMMAND_R | ModifierFlag::OPTION_R | ModifierFlag::SHIFT_R | ModifierFlag::CONTROL_R,
</autogen>
<!-- Right click to previous tab -->
<autogen>
__KeyToKey__
PointingButton::RIGHT, ModifierFlag::COMMAND_R | ModifierFlag::BUTTON6_MOD,
KeyCode::A,
ModifierFlag::COMMAND_R | ModifierFlag::OPTION_R | ModifierFlag::SHIFT_R | ModifierFlag::CONTROL_R,
</autogen>
<!-- Quit application -->
<autogen>
__KeyToKey__
PointingButton::MIDDLE, ModifierFlag::COMMAND_R | ModifierFlag::BUTTON6_MOD,
KeyCode::Q,
ModifierFlag::COMMAND_R,
</autogen>
<!-- Lookup Word -->
<autogen>
__KeyToKey__
PointingButton::BUTTON5, ModifierFlag::COMMAND_R | ModifierFlag::BUTTON6_MOD,
KeyCode::F14,
ModifierFlag::COMMAND_R, ModifierFlag::OPTION_R | ModifierFlag::SHIFT_R | ModifierFlag::CONTROL_R,
</autogen>
</item>
<item><!-- Button 4 -->
<name>Button 4 as Tab Switcher (Command-Option-Left/Right)</name>
<appendix>-------------------------------------------------------------------------------------------------------------------------</appendix>
<appendix>Click: Show Desktop</appendix>
<appendix>2x Click: Mission Control (CtrlAltGui-F2 via BetterTouchTool)</appendix>
<appendix>Hold + Button 1: Next Tab (Command-Option-Right)</appendix>
<appendix>Hold + Button 2: Previous Tab (Command-Option-Left)</appendix>
<appendix>Hold + Button 3: Close Tab (Command-W)</appendix>
<appendix>Hold + Button 5: Lookup Word under Cursor</appendix>
<identifier>private.button_4_triple_function</identifier>
<device_only>DeviceVendor::EVOLUENT, DeviceProduct::VERTICALMOUSE</device_only>
<!-- Click, double press and hold -->
<autogen>
__HoldingKeyToKey__
<!-- define button -->
PointingButton::BUTTON4,
<!-- ======================================== -->
@begin
KeyCode::VK_NONE,
<!-- normal press -->
Option::KEYTOKEY_DELAYED_ACTION,
KeyCode::F2,
ModifierFlag::COMMAND_R,
Option::KEYTOKEY_DELAYED_ACTION_CANCELED_BY, PointingButton::BUTTON4,
<!-- double press -->
KeyCode::F2,
ModifierFlag::COMMAND_R, ModifierFlag::OPTION_R | ModifierFlag::CONTROL_R,
KeyCode::VK_KEYTOKEY_DELAYED_ACTION_DROP_EVENT,
@end
<!-- ======================================== -->
@begin
<!-- holding -->
KeyCode::COMMAND_R,
ModifierFlag::BUTTON4_MOD,
@end
</autogen>
<!-- Left click to next tab -->
<autogen>
__KeyToKey__
PointingButton::LEFT, ModifierFlag::COMMAND_R | ModifierFlag::BUTTON4_MOD,
KeyCode::CURSOR_RIGHT,
ModifierFlag::COMMAND_R, ModifierFlag::OPTION_R,
</autogen>
<!-- Right click to previous tab -->
<autogen>
__KeyToKey__
PointingButton::RIGHT, ModifierFlag::COMMAND_R | ModifierFlag::BUTTON4_MOD,
KeyCode::CURSOR_LEFT,
ModifierFlag::COMMAND_R, ModifierFlag::OPTION_R,
</autogen>
<!-- Close Tab -->
<autogen>
__KeyToKey__
PointingButton::MIDDLE, ModifierFlag::COMMAND_R | ModifierFlag::BUTTON4_MOD,
KeyCode::W,
ModifierFlag::COMMAND_R,
</autogen>
<!-- Lookup Word -->
<autogen>
__KeyToKey__
PointingButton::BUTTON5, ModifierFlag::COMMAND_R | ModifierFlag::BUTTON4_MOD,
KeyCode::F14,
ModifierFlag::COMMAND_R, ModifierFlag::OPTION_R | ModifierFlag::SHIFT_R | ModifierFlag::CONTROL_R,
</autogen>
</item>
<item><!-- Button 2 -->
<name>Button 2</name>
<appendix>-------------------------------------------------------------------------------------------------------------------------</appendix>
<appendix>Click: Right Click</appendix>
<appendix>2x Click: Show Menubar in Context Menu (Hyper-F13 via BetterTouchTool)</appendix>
<appendix>Hold + Button 1: Paste Frontmost URL</appendix>
<appendix>Hold + Button 3: Paste MD Link</appendix>
<appendix>Hold + Button 5: SearchLink Selection</appendix>
<identifier>private.evoluent_button_2</identifier>
<device_only>DeviceVendor::EVOLUENT, DeviceProduct::VERTICALMOUSE</device_only>
<autogen>
__HoldingKeyToKey__
<!-- define button -->
PointingButton::RIGHT,
<!-- ======================================== -->
@begin
KeyCode::VK_NONE,
<!-- normal press -->
Option::KEYTOKEY_DELAYED_ACTION,
PointingButton::RIGHT,
Option::KEYTOKEY_DELAYED_ACTION_CANCELED_BY, PointingButton::RIGHT,
<!-- double press -->
KeyCode::F13,
ModifierFlag::COMMAND_R, ModifierFlag::OPTION_R | ModifierFlag::SHIFT_R | ModifierFlag::CONTROL_R,
KeyCode::VK_KEYTOKEY_DELAYED_ACTION_DROP_EVENT,
@end
<!-- ======================================== -->
@begin
<!-- holding -->
KeyCode::COMMAND_R | ModifierFlag::BUTTON2_MOD,
@end
</autogen>
<!-- Paste URL -->
<autogen>
__KeyToKey__
PointingButton::LEFT, ModifierFlag::COMMAND_R | ModifierFlag::BUTTON2_MOD,
KeyCode::VK_OPEN_URL_SHELL_Paste_URL,
</autogen>
<!-- Paste MD Link -->
<autogen>
__KeyToKey__
PointingButton::MIDDLE, ModifierFlag::COMMAND_R | ModifierFlag::BUTTON2_MOD,
KeyCode::VK_OPEN_URL_SHELL_Paste_MD_URL,
</autogen>
<!-- SearchLink -->
<autogen>
__KeyToKey__
PointingButton::BUTTON5, ModifierFlag::COMMAND_R | ModifierFlag::BUTTON2_MOD,
KeyCode::VK_OPEN_URL_SHELL_SearchLink,
</autogen>
<!--
<autogen>
__KeyToKey__
PointingButton::BUTTON6, ModifierFlag::OPTION_R | ModifierFlag::CONTROL_R,
KeyCode::VK_OPEN_URL_SHELL_Paste_MD_URL,
</autogen>
<autogen>
__KeyToKey__
PointingButton::BUTTON4, ModifierFlag::OPTION_R | ModifierFlag::CONTROL_R,
KeyCode::VK_OPEN_URL_SHELL_ImageLink,
</autogen>
-->
</item>
<item><!-- Button 3 -->
<name>Button 3</name>
<appendix>-------------------------------------------------------------------------------------------------------------------------</appendix>
<appendix>Click: Middle Click</appendix>
<appendix>2x Open Google Chrome</appendix>
<appendix>Hold + Button 1: Open Sublime Text</appendix>
<appendix>Hold + Button 2: Open Path Finder</appendix>
<identifier>private.evoluent_button_3</identifier>
<device_only>DeviceVendor::EVOLUENT, DeviceProduct::VERTICALMOUSE</device_only>
<autogen>
__HoldingKeyToKey__
<!-- define button -->
PointingButton::MIDDLE,
<!-- ======================================== -->
@begin
KeyCode::VK_NONE,
<!-- normal press -->
Option::KEYTOKEY_DELAYED_ACTION,
PointingButton::MIDDLE,
Option::KEYTOKEY_DELAYED_ACTION_CANCELED_BY, PointingButton::MIDDLE,
<!-- double press -->
KeyCode::VK_OPEN_URL_APP_Google_Chrome,
KeyCode::VK_KEYTOKEY_DELAYED_ACTION_DROP_EVENT,
@end
<!-- ======================================== -->
@begin
<!-- holding -->
KeyCode::COMMAND_L | ModifierFlag::BUTTON3_MOD,
@end
</autogen>
<!-- Open Sublime Text -->
<autogen>
__KeyToKey__
PointingButton::LEFT, ModifierFlag::COMMAND_L | ModifierFlag::BUTTON3_MOD,
KeyCode::VK_OPEN_URL_APP_Sublime_Text,
</autogen>
<!-- Open Path Finder -->
<!-- Conflicts with Button 2 settings
no matter what combination of modifiers I use.
If I move button 3 above 2 in the XML,
Hold Button 2 + Middle Click won't work. -->
<autogen>
__KeyToKey__
PointingButton::RIGHT, ModifierFlag::COMMAND_L | ModifierFlag::BUTTON3_MOD,
KeyCode::VK_OPEN_URL_APP_Path_Finder,
</autogen>
</item>
<item>
<name>Miscellaneous</name>
<item>
<name>Button 6 (Click and Hold Test)</name>
<identifier>private.evoluent_button6_regular</identifier>
<device_only>DeviceVendor::EVOLUENT, DeviceProduct::VERTICALMOUSE</device_only>
<autogen>
__HoldingKeyToKey__
PointingButton::BUTTON6,
@begin
PointingButton::RIGHT,
@end
@begin
<!-- holding -->
PointingButton::BUTTON6,
KeyCode::VK_NONE,
Option::NOREPEAT,
@end
Option::UNINTERRUPTIBLE_BY_SCROLL_WHEEL,
ThresholdMillisecond::RawValue::200, <!-- hold for 100 milliseconds. -->
</autogen>
</item>
<item>
<name>Button 6: Secondary Functions</name>
<appendix>Simulates the press of Shift-Right, Control-Right, Option-Right and Command-Right.</appendix>
<appendix>The lower button is used for the secondary functions. Holding it down while pressing any of the five buttons will trigger the assigned functions.</appendix>
<identifier>private.button6</identifier>
<device_only>DeviceVendor::EVOLUENT, DeviceProduct::VERTICALMOUSE</device_only>
<autogen>
--PointingButtonToKey--
PointingButton::BUTTON6,
KeyCode::COMMAND_R,
ModifierFlag::OPTION_R | ModifierFlag::SHIFT_R | ModifierFlag::CONTROL_R
</autogen>
</item>
<item>
<name>Button 6+1</name>
<identifier>private.button6_and_1</identifier>
<device_only>DeviceVendor::EVOLUENT, DeviceProduct::VERTICALMOUSE</device_only>
<autogen>
--PointingButtonToKey--
PointingButton::LEFT,
ModifierFlag::COMMAND_R, ModifierFlag::OPTION_R | ModifierFlag::SHIFT_R | ModifierFlag::CONTROL_R,
KeyCode::F2,
ModifierFlag::COMMAND_L
</autogen>
</item>
<item>
<name>Button 6+2</name>
<identifier>private.button6_and_2</identifier>
<device_only>DeviceVendor::EVOLUENT, DeviceProduct::VERTICALMOUSE</device_only>
<autogen>
--PointingButtonToKey--
PointingButton::RIGHT,
ModifierFlag::COMMAND_R, ModifierFlag::OPTION_R | ModifierFlag::SHIFT_R | ModifierFlag::CONTROL_R,
KeyCode::F2,
ModifierFlag::COMMAND_L
</autogen>
</item>
<item>
<name>Button 6+3</name>
<identifier>private.button6_and_3</identifier>
<device_only>DeviceVendor::EVOLUENT, DeviceProduct::VERTICALMOUSE</device_only>
<autogen>
--PointingButtonToKey--
PointingButton::MIDDLE,
ModifierFlag::COMMAND_R, ModifierFlag::OPTION_R | ModifierFlag::SHIFT_R | ModifierFlag::CONTROL_R,
KeyCode::F2,
ModifierFlag::COMMAND_L
</autogen>
</item>
<item>
<name>Button 6+4: Show Menubar in Context Menu</name>
<identifier>private.button6_and_4</identifier>
<device_only>DeviceVendor::EVOLUENT, DeviceProduct::VERTICALMOUSE</device_only>
<autogen>
--PointingButtonToKey--
PointingButton::BUTTON4,
ModifierFlag::COMMAND_R, ModifierFlag::OPTION_R | ModifierFlag::SHIFT_R | ModifierFlag::CONTROL_R,
KeyCode::F2,
ModifierFlag::COMMAND_L
</autogen>
</item>
<item>
<name>Button 6+5:</name>
<identifier>private.button6_and_5</identifier>
<appendix>Panic mode.</appendix>
<device_only>DeviceVendor::EVOLUENT, DeviceProduct::VERTICALMOUSE</device_only>
<autogen>
--PointingButtonToKey--
PointingButton::BUTTON5,
ModifierFlag::COMMAND_R, ModifierFlag::OPTION_R | ModifierFlag::SHIFT_R | ModifierFlag::CONTROL_R,
KeyCode::F2,
ModifierFlag::COMMAND_L
</autogen>
</item>
<item>
<name>Button 4: Show Mission Control</name>
<appendix>Triggers the shortcut Command + F3 (which is my shortcut for "Mission Control").</appendix>
<identifier>private.button4</identifier>
<device_only>DeviceVendor::EVOLUENT, DeviceProduct::VERTICALMOUSE</device_only>
<autogen>
--PointingButtonToKey--
PointingButton::BUTTON5,
KeyCode::F3,
ModifierFlag::COMMAND_L
</autogen>
</item>
<item>
<name>Button 5: Show Desktop</name>
<appendix>Triggers the shortcut Command + F2 (which is my shortcut for "Show Desktop").</appendix>
<identifier>private.button5</identifier>
<device_only>DeviceVendor::EVOLUENT, DeviceProduct::VERTICALMOUSE</device_only>
<autogen>
--PointingButtonToKey--
PointingButton::BUTTON4,
KeyCode::F2,
ModifierFlag::COMMAND_L
</autogen>
</item>
<modifierdef>BUTTON10</modifierdef>
<item>
<name>Button 10 for Tab Switching</name>
<identifier>private.evoluent_button10_for_tap_switch</identifier>
<device_only>DeviceVendor::EVOLUENT, DeviceProduct::VERTICALMOUSE</device_only>
<autogen>
__KeyOverlaidModifier__
PointingButton::BUTTON10, ModifierFlag::NONE,
@begin
KeyCode::COMMAND_R,
ModifierFlag::OPTION_R,
@end
<!-- @begin
KeyCode::R, ModifierFlag::COMMAND_R, ModifierFlag::OPTION_R | ModifierFlag::SHIFT_R | ModifierFlag::CONTROL_R, -->
<!-- a hack to release the command key -->
<!-- KeyCode::VK_MODIFIER_BUTTON6,
@end -->
</autogen>
<autogen>
__KeyToKey__
PointingButton::LEFT, ModifierFlag::BUTTON10,
KeyCode::CURSOR_RIGHT,
ModifierFlag::BUTTON10,
</autogen>
<autogen>
__KeyToKey__
PointingButton::RIGHT, ModifierFlag::BUTTON10,
KeyCode::CURSOR_LEFT,
ModifierFlag::BUTTON10,
</autogen>
</item>
</item>
</name>
</root>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment