Microsoft Sculpt Ergonomic Mouse: Windows(Blue) button + Modifier key(Fn)

515 views
Skip to first unread message

TheUntwit

unread,
Jun 11, 2016, 12:18:05 AM6/11/16
to Karabiner

Hello everyone.

 

I have a Microsoft Sculpt Ergonomic Mouse and I’m trying to configure it to behave as below:

  • Windows Button (blue button): Launchpad
  • Windows Button (blue button) + Fn: Show Desktop
  • Back Button (button4): Mission Control
  • Back Button (button4) + Fn: Mission Control
  • Scroll Wheel Left/Right: keep original side scrolling feature
  • Scroll Wheel Left/Right + Fn: Navigate Spaces

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.

Takayama Fumihiko

unread,
Jun 12, 2016, 9:26:20 AM6/12/16
to theu...@gmail.com, osx-ka...@googlegroups.com
Please use this XML:

<autogen>
__KeyToKey__
KeyCode::COMMAND_R, ModifierFlag::COMMAND_R | ModifierFlag::NONE,
KeyCode::LAUNCHPAD, Option::NOREPEAT
</autogen>
<autogen>
__KeyToKey__
KeyCode::COMMAND_R, ModifierFlag::FN,
KeyCode::MISSION_CONTROL,
MODIFIERFLAG_EITHER_LEFT_OR_RIGHT_COMMAND, Option::NOREPEAT
</autogen>


Or sort autogens by number of modifiers.

<autogen>
__KeyToKey__
KeyCode::COMMAND_R, ModifierFlag::FN,
KeyCode::MISSION_CONTROL,
MODIFIERFLAG_EITHER_LEFT_OR_RIGHT_COMMAND, Option::NOREPEAT
</autogen>
<autogen>
__KeyToKey__
KeyCode::COMMAND_R,
KeyCode::LAUNCHPAD, Option::NOREPEAT
</autogen>



--
Takayama Fumihiko <tek...@pqrs.org>

On 6/11/16 13:18, TheUntwit wrote:
>
>
> Hello everyone.
>
>
>
> I have a Microsoft Sculpt Ergonomic Mouse and I’m trying to configure it to
> behave as below:
>
>
> - Windows Button (blue button): Launchpad
> - Windows Button (blue button) + Fn: Show Desktop
>
>
> - Back Button (button4): Mission Control
> - Back Button (button4) + Fn: Mission Control
>
>
> - Scroll Wheel Left/Right: keep original side scrolling feature
> - Scroll Wheel Left/Right + Fn: Navigate Spaces
>
> 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:

theu...@gmail.com

unread,
Jun 12, 2016, 11:13:46 AM6/12/16
to Karabiner, theu...@gmail.com
Thanks a lot! It works fine.
Since I have never edited XML's before I was really intrigued by how you could make it work by simply sorting autopens by number of modifiers. Should I always start from the most most modifiers to no modifiers?

Takayama Fumihiko

unread,
Jun 13, 2016, 1:08:25 AM6/13/16
to theu...@gmail.com, osx-ka...@googlegroups.com
> Should I always start from the most most modifiers to no modifiers?

Yes.
Karabiner applies only the first matched <autogen>.
So you have to sort autogens properly or use ModifierFlag::NONE.
https://pqrs.org/osx/karabiner/xml.html.en#order

--
Takayama Fumihiko <tek...@pqrs.org>
>> Takayama Fumihiko <tek...@pqrs.org <javascript:>>
>>
>
Reply all
Reply to author
Forward
0 new messages