karabiner-windows-mode icon indicating copy to clipboard operation
karabiner-windows-mode copied to clipboard

Ctrl + C shortcut isn't working inside a build-in terminal in Visual Studio Code

Open jedrzejchalubek opened this issue 3 years ago • 9 comments

A standard Ctrl + c shortcut which terminates the current process is not working in the build-in VSC terminal. The same shortcut works perfectly in standard and iTerm terminals. I have all 'Complex modifications' enabled.

I suppose it's a problem that we want keys to be remapped when using VSC, but disabled when focusing it's inside the terminal. There is any "way around" for this problem?

jedrzejchalubek avatar Dec 31 '20 12:12 jedrzejchalubek

I personally got around this problem by excluding VSC from all remappings and then do the mapping inside VSC itself. Then I use ctrl-c to break in Terminal and mac-c to copy.

It's not up-to-date, but my fork is here for comparison. https://github.com/samuelneff/karabiner-windows-mode/tree/sam-additions

samuelneff avatar Dec 31 '20 14:12 samuelneff

I am also struggling with this very same issue. Have you come to any conclusion?

MNorgren avatar Mar 18 '21 15:03 MNorgren

@MNorgren Nope, I didn't find any reasonable or comfortable solution. For now, just closing and creating a new terminal in VSC whenever I need it to terminate it 😞

jedrzejchalubek avatar Mar 18 '21 16:03 jedrzejchalubek

I've also having this problem, but in PyCharm.

Would it be possible to only map the left Ctrl key for Ctrl + c to copy, and leave the right Ctrl alone, so that it would still work for sending a normal Ctrl + c interrupt at the terminal?

WhiteHotLoveTiger avatar Mar 25 '21 14:03 WhiteHotLoveTiger

I just made a change (#58) to use the suggestion of only using left control for the bind. @jedrzejchalubek @MNorgren @WhiteHotLoveTiger, please try the new binding and see if that at least serves as a decent workaround.

There's also the alternative of leaving the IDE's off the CTRL+C binding altogether, meaning CMD+C would have to be used to copy, but that might be a worthy tradeoff? Let me know and we'll work at creating a worthwhile solution.

rux616 avatar Apr 11 '21 11:04 rux616

It doesn't work well with the PC-Style Copy/Paste/Cut

Dunky13 avatar May 08 '21 10:05 Dunky13

Any working solution for this?

mehulparmariitr avatar May 04 '23 09:05 mehulparmariitr

You can set a custom shortcut and target the terminal in vscode.

{
      "key": "cmd+c",
      "command": "workbench.action.terminal.sendSequence",
      "args": {
        "text": "\u0003"
      },
      "when": "terminalFocus"
  }

Note that I have already swapped cmd with ctl

nikksan avatar Nov 17 '23 07:11 nikksan

I did a rule that when clicking Ctrl+Shift+C it will execute the Ctrl+C, even if it is remapped with the karabiner-elements.

{
    "description": "Quit application from terminal with Control+shift+c",
    "manipulators": [
        {
            "type": "basic",
            "from": {
                "key_code": "c",
                "modifiers": {
                    "mandatory": [
                        "left_control",
                        "left_shift"
                    ],
                    "optional": [
                        "caps_lock"
                    ]
                }
            },
            "to": [
                {
                    "shell_command": "osascript -e 'tell application \"System Events\" to keystroke \"c\" using control down' end tell"
                }
            ]
        }
    ]
}

Hope this helps someone!

Jaimi5 avatar Nov 29 '23 10:11 Jaimi5