Skip to content

Instantly share code, notes, and snippets.

@verityj
Last active January 24, 2025 21:08
Show Gist options
  • Save verityj/f54e1467859596ef36a87e14cdce54b6 to your computer and use it in GitHub Desktop.
Save verityj/f54e1467859596ef36a87e14cdce54b6 to your computer and use it in GitHub Desktop.
Remap Magic Keyboard Eject key to forward delete (and right option to forward delete as backup)
<?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>Label</key>
<string>com.local.keyremap</string>
<key>ProgramArguments</key>
<array>
<string>/usr/bin/hidutil</string>
<string>property</string>
<string>--set</string>
<string>{"UserKeyMapping":[
{
"HIDKeyboardModifierMappingSrc": 0xC000000B8,
"HIDKeyboardModifierMappingDst": 0x70000004C
},
{
"HIDKeyboardModifierMappingSrc": 0x7000000E6,
"HIDKeyboardModifierMappingDst": 0x70000004C
}
]}</string>
</array>
<key>RunAtLoad</key>
<true/>
</dict>
</plist>
@verityj
Copy link
Author

verityj commented Jun 17, 2023

Eject key is 0xC000000B8 and forward delete key is 0xC000000B8.

Place the com.local.keyremap.plist file inside ~/Library/LaunchAgents/. It will run on every user log in.

@nishyp
Copy link

nishyp commented Dec 13, 2024

OMG thank you for this @verityj!

I've been wanting to do this for a while now and managed to get it partially working with Keyboard Maestro
(only when the Keyboard was wired.)

This gets it working both wired or via Bluetooth with no issues and makes it feel native!

Note: For anyone who wants to get this started without having to restart or log back in

launchctl load ~/Library/LaunchAgents/com.local.keyremap.plist

Thank you again! 💖

@verityj
Copy link
Author

verityj commented Jan 24, 2025

Glad it was helpful to you, @nishyp 😊

I wrote some notes on Eject and general remapping, surviving reboots, so I don't forget myself LOL https://verityj.github.io/2023/06/17/eject.html

This works beautifully to reassign others (like the F5 dictation key which I never use).

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment