Mapping MAC Numeric Keyboard on VMware Console using Karabiner Elements

I regular problem of mine was launching the VMware remote console on my MAC, and being unable to use the Numeric Keypad.

I used Karabiner Elements to create my own custom rules that allow me to do this.

First step is to install Karabiner Elements

Next, I prefer to use terminal, and navigate to ~/.config/karabiner/assets/complex_modifications

Inside that folder I vi filename ben-vmware-keyboard-mapping

*note, I only prefix my name on the filename so that I know it is my custom rule in Karabiner. It is completely optional!

Next, I paste the following into the file.

{
  "title": "Map Keypad when using VMWare Console",
  "rules": [
      {
      "description": "BEN: VMware Console Use Keypad 0 key as 0",
      "manipulators": [
        {
          "conditions": [
            {
              "bundle_identifiers": [
                "^com\\.vmware\\.vmrc$",
                "^com\\.apple\\.Terminal$",
                "^com\\.googlecode\\.iterm2$"
              ],
              "type": "frontmost_application_if"
            }
           ],
          "from": {
              "key_code": "keypad_0"
           },
          "to": [
            {
            "key_code": "0"
            }
           ],
           "type": "basic"
        }
       ]
    },
    {
      "description": "BEN: VMware Console Use Keypad 1 key as 1",
      "manipulators": [
        {
          "conditions": [
            {
              "bundle_identifiers": [
                "^com\\.vmware\\.vmrc$",
                "^com\\.apple\\.Terminal$",
                "^com\\.googlecode\\.iterm2$"
              ],
              "type": "frontmost_application_if"
            }
           ],
          "from": {
              "key_code": "keypad_1"
           },
          "to": [
            {
            "key_code": "1"
            }
           ],
           "type": "basic"
        }
       ]
    },
    {
      "description": "BEN: VMware Console Use Keypad 2 key as 2",
      "manipulators": [
        {
          "conditions": [
            {
              "bundle_identifiers": [
                "^com\\.vmware\\.vmrc$",
                "^com\\.apple\\.Terminal$",
                "^com\\.googlecode\\.iterm2$"
              ],
              "type": "frontmost_application_if"
            }
           ],
          "from": {
              "key_code": "keypad_2"
           },
          "to": [
            {
            "key_code": "2"
            }
           ],
           "type": "basic"
        }
       ]
    },
    {
      "description": "BEN: VMware Console Use Keypad 3 key as 3",
      "manipulators": [
        {
          "conditions": [
            {
              "bundle_identifiers": [
                "^com\\.vmware\\.vmrc$",
                "^com\\.apple\\.Terminal$",
                "^com\\.googlecode\\.iterm2$"
              ],
              "type": "frontmost_application_if"
            }
           ],
          "from": {
              "key_code": "keypad_3"
           },
          "to": [
            {
            "key_code": "3"
            }
           ],
           "type": "basic"
        }
       ]
    },
    {
      "description": "BEN: VMware Console Use Keypad 4 key as 4",
      "manipulators": [
        {
          "conditions": [
            {
              "bundle_identifiers": [
                "^com\\.vmware\\.vmrc$",
                "^com\\.apple\\.Terminal$",
                "^com\\.googlecode\\.iterm2$"
              ],
              "type": "frontmost_application_if"
            }
           ],
          "from": {
              "key_code": "keypad_4"
           },
          "to": [
            {
            "key_code": "4"
            }
           ],
           "type": "basic"
        }
       ]
    },
    {
      "description": "BEN: VMware Console Use Keypad 5 key as 5",
      "manipulators": [
        {
          "conditions": [
            {
              "bundle_identifiers": [
                "^com\\.vmware\\.vmrc$",
                "^com\\.apple\\.Terminal$",
                "^com\\.googlecode\\.iterm2$"
              ],
              "type": "frontmost_application_if"
            }
           ],
          "from": {
              "key_code": "keypad_5"
           },
          "to": [
            {
            "key_code": "5"
            }
           ],
           "type": "basic"
        }
       ]
    },
    {
      "description": "BEN: VMware Console Use Keypad 6 key as 6",
      "manipulators": [
        {
          "conditions": [
            {
              "bundle_identifiers": [
                "^com\\.vmware\\.vmrc$",
                "^com\\.apple\\.Terminal$",
                "^com\\.googlecode\\.iterm2$"
              ],
              "type": "frontmost_application_if"
            }
           ],
          "from": {
              "key_code": "keypad_6"
           },
          "to": [
            {
            "key_code": "6"
            }
           ],
           "type": "basic"
        }
       ]
    },
    {
      "description": "BEN: VMware Console Use Keypad 7 key as 7",
      "manipulators": [
        {
          "conditions": [
            {
              "bundle_identifiers": [
                "^com\\.vmware\\.vmrc$",
                "^com\\.apple\\.Terminal$",
                "^com\\.googlecode\\.iterm2$"
              ],
              "type": "frontmost_application_if"
            }
           ],
          "from": {
              "key_code": "keypad_7"
           },
          "to": [
            {
            "key_code": "7"
            }
           ],
           "type": "basic"
        }
       ]
    },
    {
      "description": "BEN: VMware Console Use Keypad 8 key as 8",
      "manipulators": [
        {
          "conditions": [
            {
              "bundle_identifiers": [
                "^com\\.vmware\\.vmrc$",
                "^com\\.apple\\.Terminal$",
                "^com\\.googlecode\\.iterm2$"
              ],
              "type": "frontmost_application_if"
            }
           ],
          "from": {
              "key_code": "keypad_8"
           },
          "to": [
            {
            "key_code": "8"
            }
           ],
           "type": "basic"
        }
       ]
    },
    {
      "description": "BEN: VMware Console Use Keypad 9 key as 9",
      "manipulators": [
        {
          "conditions": [
            {
              "bundle_identifiers": [
                "^com\\.vmware\\.vmrc$",
                "^com\\.apple\\.Terminal$",
                "^com\\.googlecode\\.iterm2$"
              ],
              "type": "frontmost_application_if"
            }
           ],
          "from": {
              "key_code": "keypad_9"
           },
          "to": [
            {
            "key_code": "9"
            }
           ],
           "type": "basic"
        }
       ]
    },
    {
      "description": "BEN: VMware Console Use Keypad = key as =",
      "manipulators": [
        {
          "conditions": [
            {
              "bundle_identifiers": [
                "^com\\.vmware\\.vmrc$",
                "^com\\.apple\\.Terminal$",
                "^com\\.googlecode\\.iterm2$"
              ],
              "type": "frontmost_application_if"
            }
           ],
          "from": {
              "key_code": "keypad_equal_sign"
           },
          "to": [
            {
            "key_code": "equal_sign"
            }
           ],
           "type": "basic"
        }
       ]
    },
    {
      "description": "BEN: VMware Console Use Keypad / key as /",
      "manipulators": [
        {
          "conditions": [
            {
              "bundle_identifiers": [
                "^com\\.vmware\\.vmrc$",
                "^com\\.apple\\.Terminal$",
                "^com\\.googlecode\\.iterm2$"
              ],
              "type": "frontmost_application_if"
            }
           ],
          "from": {
              "key_code": "keypad_slash"
           },
          "to": [
            {
            "key_code": "slash"
            }
           ],
           "type": "basic"
        }
       ]
    },
    {
      "description": "BEN: VMware Console Use Keypad * key as *",
      "manipulators": [
        {
          "conditions": [
            {
              "bundle_identifiers": [
                "^com\\.vmware\\.vmrc$",
                "^com\\.apple\\.Terminal$",
                "^com\\.googlecode\\.iterm2$"
              ],
              "type": "frontmost_application_if"
            }
           ],
          "from": {
              "key_code": "keypad_asterisk"
           },
          "to": [
            {
            "key_code": "asterisk"
            }
           ],
           "type": "basic"
        }
       ]
    },
    {
      "description": "BEN: VMware Console Use Keypad - key as -",
      "manipulators": [
        {
          "conditions": [
            {
              "bundle_identifiers": [
                "^com\\.vmware\\.vmrc$",
                "^com\\.apple\\.Terminal$",
                "^com\\.googlecode\\.iterm2$"
              ],
              "type": "frontmost_application_if"
            }
           ],
          "from": {
              "key_code": "keypad_hyphen"
           },
          "to": [
            {
            "key_code": "hyphen"
            }
           ],
           "type": "basic"
        }
       ]
    },
    {
      "description": "BEN: VMware Console Use Keypad + key as +",
      "manipulators": [
        {
          "conditions": [
            {
              "bundle_identifiers": [
                "^com\\.vmware\\.vmrc$",
                "^com\\.apple\\.Terminal$",
                "^com\\.googlecode\\.iterm2$"
              ],
              "type": "frontmost_application_if"
            }
           ],
          "from": {
              "key_code": "keypad_plus"
           },
          "to": [
            {
            "key_code": "plus"
            }
           ],
           "type": "basic"
        }
       ]
    },
    {
      "description": "BEN: VMware Console Use Keypad ENTER key as ENTER",
      "manipulators": [
        {
          "conditions": [
            {
              "bundle_identifiers": [
                "^com\\.vmware\\.vmrc$",
                "^com\\.apple\\.Terminal$",
                "^com\\.googlecode\\.iterm2$"
              ],
              "type": "frontmost_application_if"
            }
           ],
          "from": {
              "key_code": "keypad_return_or_enter"
           },
          "to": [
            {
            "key_code": "return_or_enter"
            }
           ],
           "type": "basic"
        }
       ]
    }

  ]
}

Next I open Karabiner Elements.

Next I click on Complex Modifications and click on Add Rule

Scroll down and look for the “Map Keypad when using VMWare Console” Section.

To add them all, scroll down and you will see an Enable All button!

Now you will see them enabled on the next screen

Now when I open the Remote Console I am able to use the numeric keypad !!

This entry was posted in Remote Console, VMWare. Bookmark the permalink.

Leave a Reply

Your email address will not be published. Required fields are marked *