Keyboard shortcuts (Cmd+Arrow, Shift+Enter) break in restored terminals but work in new ones

Where does the bug appear (feature/product)?

Cursor IDE

Describe the Bug

Keyboard shortcuts (Cmd+Arrow, Cmd+Delete, Shift+Enter) stop working in restored persistent terminal sessions but work fine in newly opened terminals. Shell integration is confirmed active — the bug is in the terminal emulator’s keyboard handling during session revival.

Steps to Reproduce

  1. Enable terminal.integrated.persistentSessionReviveProcess: "onExitAndWindowClose"
  2. Open a terminal, verify Shift+Enter and Cmd+Left/Right work
  3. Quit Cursor completely
  4. Reopen Cursor — terminal restores with “History restored”
  5. Shift+Enter acts as plain Enter; Cmd+Arrow/Delete do nothing
  6. Open a new terminal — all shortcuts work fine there

Expected Behavior

Restored terminals should have identical keyboard shortcut behavior to newly opened terminals.

Operating System

MacOS

Version Information

Version: 2.6.20

Additional Information

Diagnostics show VSCODE_SHELL_INTEGRATION=1 and both __vsc_precmd/__vsc_preexec hooks are registered in the broken terminal. The issue is in xterm.js keyboard/escape-sequence translation, not shell integration.

Does this stop you from using Cursor

No - Cursor works, but with this issue

Hey, thanks for the detailed report. The repro steps are clear. This looks like a bug in how keyboard event handling gets re-initialized when persistent terminal sessions are restored after restart.

A couple of questions to narrow it down:

  1. Are you using Glass mode or standard IDE mode?
  2. Do you have any custom keybindings in keybindings.json for these shortcuts, or are these the default macOS terminal behaviors?

For now, the workaround is to close the restored terminal and open a new one after restarting Cursor. The shortcuts should work normally in new terminals.

I’ve flagged this with the team. No timeline yet, but your report helps us prioritize it.

i am noticing basic “A-Z“ not working with shift, but !@#$ works…

Hey @omgoshjosh, interesting symptom. Is this happening in the restored terminal after a restart like for the OP, or in any terminal?

Can you share:

  • Your Cursor version Help > About
  • Your OS
  • Are you using Glass mode or the standard one?

If it only happens in the restored terminal, the workaround is the same: close it and open a new terminal.