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.

  • Doesn't Karabiner have a way to do this in a private.xml, where you can have settings apply only to a certain device? groups.google.com/forum/#!topic/osx-karabiner/LmA5Pk7_-j8 – Tom Gewecke Aug 14 '15 at 22:19
  • @TomGewecke Thanks! I see that it is well documented and had already been asked elsewhere. Hopefully someone else with Google-fu as bad as mine might at least find this question (and so find this question useful). Do you want to post your comment as an answer? – Yatharth Agarwal Aug 14 '15 at 22:28

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

  • Umm.. what am I seeing in this response? It's a semi-nsfw anime drawing and unavailable image chosen as a correct answer. – Arda Sep 6 '17 at 22:01
  • 2
    @Arda A web filter may be interfering with your access to Imgur websites (I’ve encountered this exact issue in the past). Try using a VPN and reloading. – Yatharth Agarwal Sep 8 '17 at 10:29
  • thanks! Indeed, that was the issue (Actually a userscript issue on my end, which thinks i.stack.imgur links are i.imgur ) . Anyways, your solution helped me. Thanks! – Arda Sep 10 '17 at 0:07
  • Karabiner no longer works on recent MacOS versions (everything since Sierra I think?). Do you know how to do this in Karabiner-Elements? – rlpowell Dec 15 '18 at 6:06

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>.

You must log in to answer this question.

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