Evoluent VerticalMouse4 + OSX Catalina + Karabiner = Working Buttons

One month ago, I got a new laptop for work. It was provisioned with OSX Catalina and there was no way to go back. The bad news, my Evoluent VerticalMouse 4 did not work properly on Catalina. After one month of having only a Back button, which was in the wrong location, I got frustrated enough to fix it.

Most of the week I don’t think about my button issues but I use the same peripherals with another computer on the weekend. Having a working mouse there would destroy every Monday for me.

I can hear you say:

Why not just download the drivers from Evoluent? They are sitting right there.

Well, friend, the drivers that work for OS X 10.6 and newer don’t work for 10.15. They have been listed as “in development” for awhile, which is why I never upgraded my other laptop to Catalina.

After rage closing the Evoluent download page (auto playing video with sound which is hidden when mobile, you’ve been warned), I went looking for documentation to write OSX drivers. A great idea. Lucky for everyone, cooler heads prevailed and I also searched for a way to remap keys. This is when I rediscovered Karabiner in Karabiner Elements. This project acts as virtual peripherals that let you remap keys on your physical peripherals.

So, how do we do this little trick? You can save this json into a file in the complex_modifications folder, which can be found in the official file locations docs.

You can also import directly into Karabiner Elements from my site.

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
{
  "title": "Evoluent 4 on OSX 10.15+ forward/back",
  "rules": [
    {
      "description": "Set lower button to back and upper to forward",
      "manipulators": [
        {
          "type": "basic",
          "from": {
            "pointing_button": "button6"
          },
          "to": {
            "key_code": "open_bracket",
            "modifiers": ["left_gui"]
          }
        },
        {
          "type": "basic",
          "from": {
            "pointing_button": "button4"
          },
          "to": {
            "key_code": "close_bracket",
            "modifiers": ["left_gui"]
          }
        }
      ]
    }
  ]
}

So you moved your modifier keys without using Karabiner

If you changed your Modifier keys via Settings > Keyboard > Modifiers, keep in mind that Karabiner still sees the original key. I encountered this because I set the Alt key to Command on my external keyboard.