I have made some enhancements to KBE to remove the pain of switching profiles for 2+ keyboards by supporting per-device configuration. Please take a look at https://github.com/starsy/Karabiner-Elements if you are interested in. The release/download link is here: https://github.com/starsy/Karabiner-Elements/releases/tag/v1.0_merged . Pull request is here: https://github.com/tekezo/Karabiner-Elements/pull/752. It works pretty stably on my MBPR, I think it worths a try. Hope it can solve your problems too. Please don't hesitate to let me know if any issues or questions.

Very nice! I will have to try this out. Does the original karabiner support this kind of thing?
@palme1337 the old karabiner supported it, however the new karabiner elements doesn't, hope one day the official version would support it. I just released a new version with minor enhancement, feel free to try and let me know any comments.
This is so useful for those who have external keyboards. Please merge @starsy 's PR.
This is exactly what we need!
@starsy Can you do an official pull request to merge this into the original tekezo/Karabiner-Elements codebase?
@eytanhanig I have opened a pull request, but @tekezo is not responding to it. I put some thoughts in another thread: https://github.com/tekezo/Karabiner-Elements/issues/792 now i copy them here to explain what I think as the reason.
Yes, i opened a pull request quite long ago, @tekezo didn't respond to it. I think there could be several reasons, as @tekezo not sending any words, this is my pure guess:
So I have created this fork as https://github.com/starsy/Karabiner-Elements , the "master" branch is for stable release and the "follow" branch keeps tracking and following KBE original's change, in case one day @tekezo would like to accept it, it can be done quickly. The stable release and pre-built packages can be found in "Release" section. Once the recently added complex configuration in KBE original is stabilized, I would like to review the difficulty and necessity to extend this highly demanded feature to it.
@wincent very cool!
This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. Thank you for your contributions.
Activate
This issue should be closed (functionality already exists via device_if/device_unless).
This issue should be closed (functionality already exists via device_if/device_unless).
It's also in the UI:

I just tried, oh yeah, it works perfect! Thanks for help.
It can be closed
This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. Thank you for your contributions.
Most helpful comment
This is so useful for those who have external keyboards. Please merge @starsy 's PR.