This question already has an answer here:

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?

marked as duplicate by bmike macos Aug 3 '17 at 17:45

This question has been asked before and already has an answer. If those answers do not fully address your question, please ask a new question.


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>

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.


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.

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