I know that I can globally swap the Control and Command in Mac OS and this is not what I need. What I would like to do is keep both buttons as they are and only and make Ctrl+C, Ctrl+V, and Ctrl-X work as if they were pressed with the Command button. What is the easiest way to do this?


3 Answers 3


One option would be to use DefaultKeyBinding.dict, but it wouldn't work in all applications or text views.

    "^x" = cut:;
    "^c" = copy:;
    "^v" = paste:;

KeyRemap4MacBook would work almost everywhere, and it also allows excluding specific applications.

Here's the definition of the remapping selected in the screenshot:

  <name>Use PC Style Copy/Paste</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 Terminal, VM, RDC, Emacs, X11, Eclipse)</appendix>
  <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>

You can install and configue Karabiner app with the following configuration of private.xml file (edit in Misc tab):

<?xml version="1.0"?>
    <name>Copy with Ctrl-C</name>
        KeyCode::C, ModifierFlag::CONTROL_L,
        KeyCode::C, ModifierFlag::COMMAND_L
    <name>Cut with Ctrl-X</name>
        KeyCode::X, ModifierFlag::CONTROL_L,
        KeyCode::X, ModifierFlag::COMMAND_L
    <name>Paste with Ctrl-V</name>
        KeyCode::V, ModifierFlag::CONTROL_L,
        KeyCode::V, ModifierFlag::COMMAND_L

and enable newly created item after reloading the file in the Change Key tab.

  • This is more current, since Keymap4MacBook is now Karabiner-Elements.
    – dunxd
    Apr 27, 2020 at 14:17
  • Where do you put this config file? The link is dead
    – tamj0rd2
    Apr 20 at 10:24

Another option would be to use BetterTouchTool.
It is pretty straightforward to use, and you can set it up to trigger any action from a keyboard shortcut: BetterTouchTool screenshot

However, by doing this, CTRL+C or CTRL+X no longer works as expected inside the terminal. But you can disable BTT for Terminal completely to handle this case.

Not the answer you're looking for? Browse other questions tagged .