- Copy to ~/Library/LaunchAgents/com.hidutilKeyMapping.plist
- Open System Settings > Privacy & Security > Input Monitoring and add /usr/bin/hidutil (Hint: Cmd Up will open parent folder and Cmd Shift . will reveal hidden files)
- Verify hdutil present in System Settings > General > Login Items & Extensions
- Preliminary check
plutil -lint ~/Library/LaunchAgents/com.hidutilKeyMapping.plist
# You should see
# /Users/uname/Library/LaunchAgents/com.hidutilKeyMapping.plist: OK
- Test manually
/usr/bin/hidutil property --set '{"UserKeyMapping":[{"HIDKeyboardModifierMappingSrc":0x700000035,"HIDKeyboardModifierMappingDst":0x700000064},{"HIDKeyboardModifierMappingSrc":0x700000064,"HIDKeyboardModifierMappingDst":0x700000035}]}'
# Allow in System pop-up
# Check if keys swapped
hidutil property --get "UserKeyMapping"
# Should contain
# HIDKeyboardModifierMappingSrc = 0x700000035
# HIDKeyboardModifierMappingDst = 0x700000064
- Stop/Start using launchctl
launchctl bootout gui/$(id -u)/com.local.KeyRemapping
launchctl bootstrap gui/$(id -u) ~/Library/LaunchAgents/com.hidutilKeyMapping.plist
launchctl print gui/$(id -u)/com.local.KeyRemapping
Tested working on Golden Gate