[WIP] Remapping Keys in macOS: right [meta] key swap with right [alt] key

5/8/2021 One-minute read

UPDATE:

https://rakhesh.com/mac/using-hidutil-to-map-macos-keyboard-keys/

https://hidutil-generator.netlify.app/

Apple table of mappings:

macOS keyboard mappings

  • Keyboard Left Alt = 0xE2
  • Keyboard Left GUI = 0xE3

How to test it:

hidutil property --set '{"UserKeyMapping": [{"HIDKeyboardModifierMappingSrc":0x7000000e2, "HIDKeyboardModifierMappingDst":0x7000000e3}, {"HIDKeyboardModifierMappingSrc":0x7000000e3, "HIDKeyboardModifierMappingDst":0x7000000e2}] }'

How to rollback it:

hidutil property --set '{"UserKeyMapping": [{"HIDKeyboardModifierMappingSrc":0x7000000e2, "HIDKeyboardModifierMappingDst":0x7000000e2}, {"HIDKeyboardModifierMappingSrc":0x7000000e3, "HIDKeyboardModifierMappingDst":0x7000000e3}] }'

Make it permanent:

nano /Users/fran/Library/LaunchAgents/franferri.io.winkeyboard.plist

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
  <key>EnvironmentVariables</key>
  <dict>
    <key>PATH</key>
    <string>/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/Applications/VMware Fusion.app/Contents/Public:/usr/local/sbin</string>
  </dict>
  <key>Label</key>
  <string>winkeyboard</string>
  <key>ProgramArguments</key>
  <array>
    <string>/usr/bin/hidutil</string>
    <string>property</string>
    <string>--set</string>
    <string>{"UserKeyMapping":
  [{"HIDKeyboardModifierMappingSrc":0x7000000e2,
   "HIDKeyboardModifierMappingDst":0x7000000e3},
   {"HIDKeyboardModifierMappingSrc":0x7000000e3,
   "HIDKeyboardModifierMappingDst":0x7000000e2}]
}</string>
  </array>
  <key>RunAtLoad</key>
  <true/>
</dict>
</plist>

Sources:

Google result 1 Google result 2