This post explains the steps I took to make my Mac keyboard work more like a PC keyboard. The goal here is not necessarily for keys with the same names to be in the same position (e.g., the Ctrl key), but rather to have the same functionality across platforms when pressing keys located in the same positions.
Until last summer, I mainly used Windows and various distributions of Linux. Last summer I got my first laptop, a MacBook Air. I still use Windows on my desktop computer, and I have Xubuntu installed on VirtualBox virtual machines on both my desktop and laptop.
Both Windows and Linux (i.e., the distributions that I have used) have similar key bindings. For example, Ctrl-C is used for copying on Windows and it is also used for copying on every desktop environment I have used on Linux. When I started using OS X, I quickly realized that it uses a different set of key bindings. For example, the key binding for copying is Command-C, and the Command key on a Mac keyboard is located in a different position than the Ctrl key is on a PC keyboard.
I decided right away to modify the Mac key bindings so they would be more like the bindings that I was familiar with. If I was committed to completely switching platforms, I would have given more consideration to learning a new set of key bindings. However, since I was still planning on using multiple platforms, I wanted to make switching back and forth as seamless as possible.
Here are the steps for configuring the Mac’s keyboard to work like a PC keyboard.
Step 1. Configure Modifier Keys
The first step is changing the Modifier Keys… settings in the keyboard settings in system preferences. The settings are shown below.
Step 2. Create DefaultKeyBinding.dict
The next step is to create a DefaultKeyBinding.dict file to add additional settings that make the bindings more similar to a PC (e.g., Ctrl-Left to move the cursor one word left, which will now be Command-Left on the Mac since the Command key is now—after Step 1—located where Ctrl is on a PC keyboard).
I used KeyBindingsEditor to create the following DefaultKeyBinding.dict file: DefaultKeyBinding.dict
The file should be saved to ~/Library/KeyBindings/, where ~ denotes your home directory. If you can’t see the Library directory in Finder, then click Go –> Go to Folder…, and enter ~/Library.
The idea for editing DefaultKeyBinding.dict was from Fixing up the Mac Key Bindings for Windows Users.
Step 3 (optional). Print Keyboard Stickers
The last step is making the keys on your keyboard reflect the changed settings. To do this, I followed the directions on How to Make Custom Keyboard Stickers. The image below shows the stickers on my MacBook Air keyboard.
Here is the PNG file with the labels: keyboard.png
Here is the Photoshop file: keyboard.psd
In addition to the three stickers shown, I also put a ctrl sticker over the option key on the right side of the keyboard. I did not cover the command key on the right side of the keyboard, since that key’s functionality was not modified.
First, print the stickers on a vinyl adhesive sheet. The preceding link indicates that the product is for an inkjet. However, I had better results using a laser printer. Next, cover the sheet with a laminate sticker. Lastly, cut out the key labels, peel off the back layer of the sticker, and stick the labels on your keyboard. The image I attached with key labels shows the sharp corners on the labels I created. If I did this again, I’d probably cut the corners to be rounded.
An alternative to printing your own custom keyboard labels is to order custom labels from a site such as DataCal.
3 replies on “Changing Mac Key Bindings”
Rocks. Thanks for posting this. Just switched from PC and I’m having a bad time adjusting to all the keyboard shortcuts in MAC. But as I’m working in both environments, I need to move the MAC to the Windows environment. I’m used to it.
I still don’t know how I’m gonna make Excel Mac behave as Excel PC. Much more googling to do in the coming days.
Thanks!
Hi Javier,
I also tried to modify Excel on Mac so that it would work more like the version on Windows. However, the version of Excel that I used on OS X did not have the functionality for creating VBA scripts, and I also preferred the interface on Windows.
I ultimately ended up running Excel in a Windows virtual machine, using VirtualBox. I set up shared folders so that the virtual machine could access files on the host. However, after modifying the key bindings in OS X (as described in this post), I had to make additional modifications to the key bindings in the Windows virtual machine. I used AutoHotkey for that, adding the following to my AutoHotkey script:
LCtrl::LWin
LWin::LCtrl
Daniel, Thanks!
I am afraid that for certain things i will have to do that, open the PC virtual version. But to have to re-re-direction the keys is way too mucho!
I can’t believe how inferior the MAC version of Office is compared to the PC version, both 2010. I came to MAC after a long time away and I’m not impressed with the software. But the Hardware rocks. An yet, running Windows virtually on them is not making good use of the speed.
I did read a post on how to run a script every time you press the function key you want. But without script functionality, that doesn’t work. (reference: http://www.mcgimpsey.com/macoffice/excel/f2.html )
I’ll try to see how I’ll proceed. Thanks for the follow up!