I have an external keyboard with Windows keys. I'd like to remap the keys so the layout of the keys on the bottom-left is identical to the internal keyboard on my MacBook Pro.



...should be this:


I've succeeded in remapping the windows and alt keys to option and command, respectively, via the Keyboard pane in System Preferences, but switching the control and fn keys isn't possible that way. Does anyone know of a way to do this?

Note: I don't want to globally switch control and fn; I only want to switch them on the external keyboard. KeyRemap4MacBook only seems to be able to remap the internal keyboard. When I check "Don't remap internal keyboards," the internal layout is restored, but nothing changes on the external keyboard.

  • Were you able to figure this out? – William Bing Hua May 27 '16 at 19:30
  • No, I've had no luck :/ – Will May 27 '16 at 23:14

KeyRemap4MacBook also supports device-specific settings:

<?xml version="1.0"?>
    <device_only>DeviceVendor::KINESIS, DeviceProduct::ADVANTAGE</device_only>
    <autogen>__KeyToKey__ KeyCode::CONTROL_L, KeyCode::FN</autogen>
    <autogen>__KeyToKey__ KeyCode::FN, KeyCode::CONTROL_L</autogen>
    <autogen>__KeyToKey__ KeyCode::COMMAND_L, KeyCode::OPTION_L</autogen>
    <autogen>__KeyToKey__ KeyCode::OPTION_L, KeyCode::COMMAND_L</autogen>

You can see the vendor and product IDs from EventViewer.app. If it can't remap any keys on the external keyboard, try uninstalling other keyboard or HID drivers.

See the source for the key code values and predefined settings.

  • EventViewer is a helper application inside KeyRemap. We can also check vendor and device IDs inside System Information. EventViewer also shows the actual keycodes that we're typing. – brasofilo Feb 25 '17 at 10:50

Now you do not need any additional software. In System -> Keyboard -> Modifier keys you can remap separately each keyboard.

You must log in to answer this question.

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