I have recently started using a OSX installed macbook pro work for my work. It is a performance beast but the main environment I’m used to up to this point was Windows. I had a hard time getting used to the key layout, especially the command key. I’m using Macs occasionally for mobile Safari debugging etc. and could handle short periods of Mac use without a problem (Don’t want to remember closing the app when trying to make an “@” on a Turkish keyboard by trying right-ALT (which is apparently not) + Q). Having it as the main environment on the other hand is troublesome for me.
I did a quick online search and found a great tool called Karabiner (https://pqrs.org/osx/karabiner/). You prepare an XML file that defines the key binding and it handles the rest. I’m mainly using IntelliJ products which provide a Visual Studio key binding. It works very good for most of the part but cannot properly bind CTRL + actions such as word selection and navigation. Although the bindings are correct they refuse to work with CTRL key only (an OS level low level binding maybe?) so I’ve used different binding for such cases and redefined them in IntelliJ keymap.
I’ve tried to bring as much as possible to the Karabiner XML to make reconfiguration easier (It is possible to make some binding on OSX level as well). I hope the bindings I’m using become useful to others that are planning to switch to OSX. At least it will provide a starting point for simple Karabiner configuration. You can get it on github: https://github.com/anacierdem/MacWinKeys/