3

I used the hidutil function to remap several keys on my keyboard:

hidutil property --set '{"UserKeyMapping":
    [{"HIDKeyboardModifierMappingSrc":0x70000003e,
      "HIDKeyboardModifierMappingDst":0x70000004c},
     {"HIDKeyboardModifierMappingSrc":0x70000004c,
      "HIDKeyboardModifierMappingDst":0x70000003e} ,   
     {"HIDKeyboardModifierMappingSrc":0x70000003f,
      "HIDKeyboardModifierMappingDst":0x70000002a},
     {"HIDKeyboardModifierMappingSrc":0x70000002a,
      "HIDKeyboardModifierMappingDst":0x70000003f}]
}'

My problem is that I made some mistakes in it, and I don't find the way to restore it.

2

To reset the key mapping(s) back to default, simply make the "destination" the same as the "source"

For example,

hidutil property --set'{"UserKeyMapping": [{"HIDKeyboardModifierMappingSrc":0x70000003e,
  "HIDKeyboardModifierMappingDst":0x70000003e}]'
| improve this answer | |
  • Glad it worked for you! – Allan Feb 15 '19 at 17:33
4

Passing empty string didn't work for me, i.e. it didn't deactivate existing remappings. However, passing an empty array did the trick.

hidutil property --set '{"UserKeyMapping":[]}'
| improve this answer | |
  • 2
    This should be the accepted answer. – luckman212 May 1 at 21:31
  • [] looks better than "" indeed. – clarkttfu yesterday
1

According to the help doc of the command, the content following --set must be valid JSON. But setting the property to null takes no effect. Instead, I found either empty string actually works here:

hidutil property --set '{"UserKeyMapping":""}'

| improve this answer | |

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .