I use both the built in keyboard and an external Microsoft keyboard that requires swapping control and option keys, meaning that different sets of modifications are required for each device.
Unfortunately Karabiner Elements currently overrides the System Preferences settings that alter what modifier keys do on a per-device basis, meaning you can't use them together.
If it is not possible to enable Karabiner Elements to work alongside the System Preferences settings, It would be super useful to have the ability in KE to specify a different list of modifications for each keyboard device. Even if it's not possible using the UI, having that ability in the JSON file would be fine.
Thanks!
This is the main reason I'm not using KE and instead have re-mapped my shortcuts. I agree with you that implementing this using either method would be great.
This is for sure something that has to be implemented somehow. Anyone that's using KE for remapping a specific external keyboard on a macbook (for instance) wouldn't want to mess with every single keyboard or with the internal keyboard.
Agreed that a simple json optional attribute (vendor+product for the affected device) tied to each "simple-modification" would be enough (if not able to come up with it on the UI).
Or, at least for now, the ability to make "simple modification named sets" that we could activate and deactivate when using 'this' or 'that' specific keyboard. We would then name a simple-modification-set with the keyboard's name and just activate it when using that keyboard (for instance).
I would also like the ability to define a set of modifications and be able to tie them to a specific device, but also be able to activate that set when a specific other device is present, similar to how the disable functionality currently works. For example, when I have a specific bluetooth keyboard connected, I would like to disable everything on the built in keyboard except for the arrow keys and then switch back to normal when the bluetooth keyboard is disconnected.
This seems like something one could set in the newish Profiles section. Karabiner already has the Devices section which defines the devices you have available (right now)
So, technically when you have let's say a Mechanical Keyboard plugged in, you could amend a currently active Profile with a device from a dropdown. That'd be Selected upon plugging it in.
Anyone have similar thoughts?
@bartek, are you saying the functionality I was looking for already exists or that the makings of it exist and just needs a bit of implementation? I think the makings of it are there with the ability to disable a device based on the presence of another. What I think would be needed is the ability to swap a profile for a specific device based on the presence of another. Hopefully that is a clearer way of stating the functionality I am seeking.
@JimsFlutes Cool. I am saying that this functionality could exist with a few amendments to the data and modules already available. I am saying it's functionality that could perhaps be a _Quick Win_ but yes, does not exist in the way you and I are thinking about it :)
@timczerniak @JimsFlutes @tc2290 @bartek I have made some enhancements to KBE to support per device configuration within the same profile. Please check if this helps: https://github.com/tekezo/Karabiner-Elements/issues/770 Please let me know if any questions.

Yes this would solve the issue I reported. Thanks!
I have created a pull request to merge it back, however @tekezo has not responded to it yet. If you want to try this feature, please go ahead to download my own built version: https://github.com/starsy/Karabiner-Elements/releases or you can checkout the source code from https://github.com/starsy/Karabiner-Elements and compile by yourself. Thanks.
Will try this out. Thanks!
On Jun 7, 2017, at 1:01 PM, starsy notifications@github.com wrote:
I have created a pull request to merge it back, however @tekezo https://github.com/tekezo is not responding to it. If you want to try this feature, please go ahead to download my own built version: https://github.com/starsy/Karabiner-Elements/releases https://github.com/starsy/Karabiner-Elements/releases or you can checkout the source code from https://github.com/starsy/Karabiner-Elements https://github.com/starsy/Karabiner-Elements and compile by yourself. Thanks.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub https://github.com/tekezo/Karabiner-Elements/issues/592#issuecomment-306876213, or mute the thread https://github.com/notifications/unsubscribe-auth/AFBVAlUZAcxuD_awzDV17BQ25cUxSpnuks5sBuV3gaJpZM4Lu-C7.
Awesome @starsy !
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.
Safe to close now?
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.
@timczerniak: Since you created the issue, could you mark as closed (or remark what is missing)? :-)
Closed.