KeyRemap4MacBook_Logo

PC to Mac Switch – Don’t Relearn Your Keyboard Shortcuts

knowventBanner

So you did it. You purchased a Mac but all you know is Windows. For me the transition was surprising smooth. The biggest hurdle was finding tools that could aid my ability to continue working without having to retrain myself. I needed my mac keyboard changed to a PC style.

The KeyRemap4MacBook – Mac Keyboard Mapping

If you are a windows user like me then you are probably a control-c and control-v kinda guy/girl. With a mac this is a problem. Your keyboard muscle memory you have worked so hard to develop has instantly become obsolete. It doesn’t have to be that way and you are not the alone. Enter KeyRemap4MacBook.

KeyRemap4MacBook was designed with the muscle memory challenged individuals in mind. This is great tool that will help you remap your Mac keyboard and other keyboards you might use with your Mac. I am not going to go into much detail regarding the software capabilities. However, if you are interested, the developer of KeyRemap4MacBook has some great documentation to look through.

Key Your Keyboard Back with KeyRemap4MacBook

The tool has a lot of predefined remapping definitions available to pick from. However, some of them don’t always fit the bill. So in this case you can define custom keyboard mappings which is what I did.

To access your custom private.xml file click on the KeyRemap4MacBook icon in the menu bar –> click on preferences –> click Misc & Uninstall tab –> click on open private.xml button.

KeyRemap4MacBook preferences - Misc & Uninstall

After opening the file you will notice it is empty. For the basic keyboard shortcuts you might be familiar with I have provided them here below. I am also maintaining a Gist if you are interested.

  <?xml version="1.0"?>
  <root>
      <item>
          <name>Use PC Style Undo</name>
          <appendix>(Control+Z to Command_L+Z)</appendix>
          <appendix>(Except in Vi, Terminal, VM, RDC, Emacs, X11)</appendix>
          <identifier>remap.undo_winstyle_no_term_vi_firefox</identifier>
          <not>VI, EMACS, TERMINAL, VIRTUALMACHINE, REMOTEDESKTOPCONNECTION, TEAMVIEWER, X11</not>
          <autogen>--KeyToKey-- KeyCode::Z, VK_CONTROL, KeyCode::Z, ModifierFlag::COMMAND_L</autogen>
      </item>
      <item>
          <name>Use PC Style Select All</name>
          <appendix>(Control+A to Command_L+A)</appendix>
          <appendix>(Except in Vi, Terminal, VM, RDC, Emacs, X11)</appendix>
          <identifier>remap.select_all_winstyle_no_term_vi_firefox</identifier>
          <not>VI, EMACS, TERMINAL, VIRTUALMACHINE, REMOTEDESKTOPCONNECTION, TEAMVIEWER, X11</not>
          <autogen>--KeyToKey-- KeyCode::A, VK_CONTROL, KeyCode::A, ModifierFlag::COMMAND_L</autogen>
      </item>
      <item>
          <name>Use PC Style Save</name>
          <appendix>(Control+S to Command_L+S)</appendix>
          <appendix>(Except in Vi, Terminal, VM, RDC, Emacs, X11)</appendix>
          <identifier>remap.save_winstyle_no_term_vi_firefox</identifier>
          <not>VI, EMACS, TERMINAL, VIRTUALMACHINE, REMOTEDESKTOPCONNECTION, TEAMVIEWER, X11</not>
          <autogen>--KeyToKey-- KeyCode::S, VK_CONTROL, KeyCode::S, ModifierFlag::COMMAND_L</autogen>
      </item>
      <item>
          <name>Use PC Style Find</name>
          <appendix>(Control+F to Command_L+F)</appendix>
          <appendix>(Except in Vi, Terminal, VM, RsDC, Emacs, X11)</appendix>
          <identifier>remap.find_winstyle_no_term_vi_firefox</identifier>
          <not>VI, EMACS, TERMINAL, VIRTUALMACHINE, REMOTEDESKTOPCONNECTION, TEAMVIEWER, X11</not>
          <autogen>--KeyToKey-- KeyCode::F, VK_CONTROL, KeyCode::F, ModifierFlag::COMMAND_L</autogen>
      </item>
      <item>
          <name>Use PC Style Copy/Paste Custom</name>
          <appendix>(Control+C to Command_L+C)</appendix>
          <appendix>(Control+V to Command_L+V)</appendix>
          <appendix>(Control+X to Command_L+X)</appendix>
          <appendix>(Except in Vi Terminal, VM, RDC, Emacs, X11, Eclipse)</appendix>
          <identifier>remap.copy_paste_winstyle_no_term_vi_firefox</identifier>
          <not>VI, EMACS, TERMINAL, VIRTUALMACHINE, REMOTEDESKTOPCONNECTION, X11, ECLIPSE</not>
          <autogen>--KeyToKey-- KeyCode::C, VK_CONTROL, KeyCode::C, ModifierFlag::COMMAND_L</autogen>
          <autogen>--KeyToKey-- KeyCode::V, VK_CONTROL, KeyCode::V, ModifierFlag::COMMAND_L</autogen>
          <autogen>--KeyToKey-- KeyCode::X, VK_CONTROL, KeyCode::X, ModifierFlag::COMMAND_L</autogen>
      </item>
  </root>

You will notice the there are some strings in the “Not” tag. They are explicitly excluded from being remapped because the programs themselves remap keys for your. For example, REMOTEDESKTOPCONNECTION handles the mapping from a Mac to the type of environment you are logging in to. If KeyRemap4MacBook was enabled on these types of programs there would be remapped twice.

It is extremely helpful to have multiple key remapping profiles setup for different scenarios. If you noticed in the screenshot above you still see I have Default – for PC key mapping when using the laptop keyboard, Mac – No key mappings configured/standard mac keyboard and Windows USB Keyboard – for when I use my MacBook with a external Windows keyboard.

Conclusion

If you are thinking about switching systems you have a lot options. Setting up a mac to behave like a windows machine is easier than you think. The biggest hurdle with the transition was the keyboard.f Once the keyboard conformed to my trained fingers everything else was just small adjustments.

Tell us below what other tricks you have done to streamline your switch from a PC to a Mac.

Posted in Mac, Programming.