Different key-maps/bindings for in-built keyboard and Bluetooth keyboard

I oft have to use a Windows keyboard with my Macbook. I have two different profiles in Karabiner, but I don't want to have to keep switching between them.

How can I have different profiles apply to different keyboards in Karabiner or using some other key remapping system?

Note: If this is technically difficult, perhaps because applications might not be able to distinguish which keyboard sent a particular keystroke, a solution that worked based on detecting if an external monitor is plugged in (using an AppleScript that interacted with Karabiner, maybe) would also be acceptable.


If you only want to disable key-mapping for the internal keyboard for Apple keyboards, the GUI offers a simpler way that doesn't involve reimporting your profile and editing private.xml:

Internal External


You can export the relevant settings from both profiles as XML, place them in private.xml, and then customize them by adding the appropriate tags as described here (found through this Google Groups discussion):

You can define settings which are effective on specific [sic] device only.
Add <device_only> or <device_not> to your <item>.