Skip to content

/terminal-setup inside Dev Container and Codespaces writes keybindings to wrong file #657

@JeffreyCA

Description

@JeffreyCA

Describe the bug

When using Copilot CLI within a Linux Dev Container or GitHub Codespaces instance, /terminal-setup creates a ~/.config/Code/User/keybindings.json or ~/.config/Code - Insiders/User/keybindings.json file, which doesn't do anything because keybinding configs work at the host layer.

This causes Shift+Enter and Ctrl+Enter keypresses to not insert newlines as intended, and also makes copilot think they're correctly set up when they're not:

 ● Key bindings for VS Code are already set up. Your terminal already has multiline support with Shift+Enter and Ctrl+Enter.

Workaround

  1. Activate Command Palette (Ctrl+Shift+P or Cmd+Shift+P)

  2. Select Preferences: Open Keyboard Shortcuts (JSON)

  3. Insert the following into the JSON array:

    {
        "key": "ctrl+enter",
        "command": "workbench.action.terminal.sendSequence",
        "when": "terminalFocus",
        "args": {
            "text": "\\\r\n"
        }
    },
    {
        "key": "shift+enter",
        "command": "workbench.action.terminal.sendSequence",
        "when": "terminalFocus",
        "args": {
            "text": "\\\r\n"
        }
    }

Affected version

0.0.363

Steps to reproduce the behavior

  1. Remove Ctrl+Enter and Shift+Enter keybindings from keybindings.json
  2. Install and run Copilot CLI from inside a Linux Dev Container or GitHub Codespaces instance
  3. Run /terminal-setup or choose yes when prompted during the first-time setup flow

Expected behavior

Keybindings should be added to the host-level keybindings.json config.

Additional context

No response

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions