Hello everyone.
I have a Microsoft Sculpt Ergonomic Mouse and I’m trying to configure it to behave as below:
As you can see, I want to use Fn modifier to expand my possibilities. I’ve managed to accomplish almost all of it , except for Show Desktop.
Windows Button (blue button) sends Command_R and I was able to configure it for Launchpad, but I can’t combine it with a modifier key (Fn) to Show Desktop. Here is my current code:
<root>
<devicevendordef>
<vendorname>MICROSOFT</vendorname>
<vendorid>0x045e</vendorid>
</devicevendordef>
<deviceproductdef>
<productname>SCULPT_ERGONOMIC</productname>
<productid>0x07a5</productid>
</deviceproductdef>
<item>
<name>Windows Button to Launchpad (Microsoft Sculpt Ergonomic Mouse)</name>
<identifier>com.microsoft.mouse.sculpt_ergonomic.win_button_to_launchpad</identifier>
<device_only>DeviceVendor::MICROSOFT,DeviceProduct::SCULPT_ERGONOMIC</device_only>
<autogen>
__KeyToKey__
KeyCode::COMMAND_R,
KeyCode::LAUNCHPAD, Option::NOREPEAT
</autogen>
</item>
<item>
<name>Middle Button to Show Desktop (Microsoft Sculpt Ergonomic Mouse)</name>
<identifier>com.microsoft.mouse.sculpt_ergonomic.middle_button_to_show_desktop</identifier>
<device_only>DeviceVendor::MICROSOFT,DeviceProduct::SCULPT_ERGONOMIC</device_only>
<autogen>
__KeyToKey__
PointingButton::MIDDLE, ModifierFlag::FN,
KeyCode::MISSION_CONTROL, MODIFIERFLAG_EITHER_LEFT_OR_RIGHT_COMMAND, Option::NOREPEAT
</autogen>
</item>
<item>
<name>Mouse4 Button to Mission Control (Microsoft Sculpt Ergonomic Mouse)</name>
<identifier>com.microsoft.mouse.sculpt_ergonomic.button4_to_mission_control</identifier>
<device_only>DeviceVendor::MICROSOFT,DeviceProduct::SCULPT_ERGONOMIC</device_only>
<autogen>
__KeyToKey__
PointingButton::BUTTON4, ModifierFlag::NONE,
KeyCode::MISSION_CONTROL, Option::NOREPEAT
</autogen>
</item>
<item>
<name>Mouse4 Button + Fn to App Exposé (Microsoft Sculpt Ergonomic Mouse)</name>
<identifier>com.microsoft.mouse.sculpt_ergonomic.button4_fn_to_app_expose</identifier>
<device_only>DeviceVendor::MICROSOFT,DeviceProduct::SCULPT_ERGONOMIC</device_only>
<autogen>
__KeyToKey__
PointingButton::BUTTON4, ModifierFlag::FN,
KeyCode::MISSION_CONTROL, MODIFIERFLAG_EITHER_LEFT_OR_RIGHT_CONTROL, Option::NOREPEAT
</autogen>
</item>
<item>
<name>ScrollWheel Left to Space Left or Right (Microsoft Sculpt Ergonomic Mouse)</name>
<identifier>com.microsoft.mouse.sculpt_ergonomic.scrollwheel_to_space</identifier>
<device_only>DeviceVendor::MICROSOFT,DeviceProduct::SCULPT_ERGONOMIC</device_only>
<autogen>
__ScrollWheelToKey__
ScrollWheel::LEFT, ModifierFlag::FN,
KeyCode::CURSOR_RIGHT, MODIFIERFLAG_EITHER_LEFT_OR_RIGHT_CONTROL,
</autogen>
<autogen>
__ScrollWheelToKey__
ScrollWheel::RIGHT, ModifierFlag::FN,
KeyCode::CURSOR_LEFT, MODIFIERFLAG_EITHER_LEFT_OR_RIGHT_CONTROL,
</autogen>
</item>
</root>
As you can see, I have temporarily configured a workaround:Middle Button + Fn to Show Desktop, and this combination works justfine. However, I still want it to be Windows Button + Fn. I tried this but it didn’t work:
<item>
<name>Windows Button to Launchpad (Microsoft Sculpt Ergonomic Mouse)</name>
<identifier>com.microsoft.mouse.sculpt_ergonomic.win_button_to_launchpad</identifier>
<device_only>DeviceVendor::MICROSOFT,DeviceProduct::SCULPT_ERGONOMIC</device_only>
<autogen>
__KeyToKey__
KeyCode::COMMAND_R, ModifierFlag::NONE
KeyCode::LAUNCHPAD, Option::NOREPEAT
</autogen>
</item>
<item>
<name>Windows Button + Fn to Show Desktop (Microsoft Sculpt Ergonomic Mouse)</name>
<identifier>com.microsoft.mouse.sculpt_ergonomic.win_button_fn_to_show_desktop</identifier>
<device_only>DeviceVendor::MICROSOFT,DeviceProduct::SCULPT_ERGONOMIC</device_only>
<autogen>
__KeyToKey__
KeyCode::COMMAND_R, ModifierFlag::FN,
KeyCode::MISSION_CONTROL, MODIFIERFLAG_EITHER_LEFT_OR_RIGHT_COMMAND, Option::NOREPEAT
</autogen>
</item>
Whenever I combine ‘KeyCode::COMMAND_R’ with ‘ModifierFlag::NONE’, ‘ModifierFlag::FN’ or any other modifier, nothing happens, it will just not work.
In order to exclude incompatibilities with these buttons I have also tried the same Command_R + Fn from my MacBook Built-in Keyboard and it worked alright with the following code:
<?xml version="1.0"?>
<root>
<devicevendordef>
<vendorname>APPLE_INC</vendorname>
<vendorid>0x05ac</vendorid>
</devicevendordef>
<deviceproductdef>
<productname>INTERNAL_KEYBOARD</productname>
<productid>0x0236</productid>
</deviceproductdef>
<item>
<name> Apple test (Apple test)</name>
<identifier>com.apple.test</identifier>
<device_only>DeviceVendor::APPLE_INC,DeviceProduct:: INTERNAL_KEYBOARD</device_only>
<autogen>
__KeyToKey__
KeyCode::COMMAND_R, ModifierFlag::FN,
KeyCode::MISSION_CONTROL, MODIFIERFLAG_EITHER_LEFT_OR_RIGHT_CONTROL, Option::NOREPEAT
</autogen>
</item>
</root>
Is there a reason I can’t use any modifier with Windows Button? Is there a workaround I can’t see? I’m new to Karabiner and any suggestions are welcome.