Unfortunately, I have a coworker who bought a bunch of Windows compatible keyboards for our office. So, despite using a Mac I decided that I can live with a Windows keyboard at the office— as they are virtually the same. The only complication is that Windows keyboards have an opposite mapping for the cmd and alt keys.
On a standard Mac keyboard it goes control, alt/option, command. (Moving out to in)
On a Windows keyboard it goes control, command, alt/option.
This small change can be pretty annoying given the difficulty in copying and pasting etc. So every morning at the office, I have to do a keyboard remapping through the settings. And once I get home and back to my external Mac keyboard I have to reverse that remapping. It is pretty annoying.
So after much searching, I found this great tool: Karabiner-Elements. It lets you perform a keyboard remapping by setting defaults maps and saving it in a JSON format. That map gets read and voilà you are good to go.
That JSON gets stored in
Here is a look at my JSON.
I have two mappings, one labeled Mac and another Windows. The Windows has the mappings which says something like this
from “right_command” → “right_option”