Skip to content

Support modifyOtherKeys and/or Kitty's keyboard protocol #2037

Closed

Description

@hovsater

Discord username (optional)

No response

Describe the bug

While Warp is truly innovative in the terminal space I've unfortunately found it unusable due to it's lackluster support of keyboard escape sequences. I'm using dte as my main editor and unfortunately it fail to recognise most keypress combinations (e.g., C-<arrow key>, M-<arrow key>, C-S-M-<arrow key>, C-enter, C-S-enter to name a few) in Warp while it does so fine in iTerm2, wezterm, Kitty and others.

As a bare minimum, Warp should support modifyOtherKeys. It's supported by most terminal programs, including tmux with extended keys. Preferably, Warp would support Kitty's keyboard protocol in addition to modifyOtherKeys as it's definitely the way forward.

To Reproduce

$ docker run --rm -it ubuntu:latest
$ apt update && apt install -y build-essential git
$ git clone https://gitlab.com/craigbarnes/dte.git /tmp/dte
$ cd !$
$ make
$ ./dte -K

Now press different key combinations (try some of the ones mentioned above for example) and notice how they're not recognized.

Expected behaviour

I'd expect Warp to send the appropriate escape sequences.

Screenshots

No response

Operating System

MacOS

OS Version

13.0

Shell Version

GNU bash, version 5.2.2(1)-release (aarch64-apple-darwin21.6.0)

Warp Version

v0.2022.10.25.08.06.stable_03

Additional context

I opened an issue over at wezterm a while back and it has since been addressed. See wezterm/wezterm@e2c658e and wezterm/wezterm@47f4987 for details.

Here's a list of related issues.

Does this block you from using Warp daily?

Yes

Warp Internal (ignore): linear-label:b8107fdf-ba31-488d-b103-d271c89cac3e

No response

Activity

  1. elviskahoro commented on Nov 18, 2022

    @elviskahoro
    Contributor

    @hovsater Thanks for the thorough issue. Will circle back here when we have made progress!

  2. hovsater commented on Dec 14, 2022

    @hovsater
    Author

    @elviskahoro thank you. Appreciate it. 🙏

  3. skiss9 commented on Oct 16, 2024

    @skiss9

    Enabling shortcuts such as cmd S to save a file in vim could be a game changer for terminal usage. Things don't have to be cryptic and unfamiliar to be powerful. It just has to be a movement where terminal emulators support these features in a good way and promote it. There are some questions about potential conflicts between the emulator app and the shell command but I think those could be solved in different clever ways.

  4. ParadaCarleton commented on May 28, 2025

    @ParadaCarleton

    Enabling shortcuts such as cmd S to save a file in vim could be a game changer for terminal usage. Things don't have to be cryptic and unfamiliar to be powerful. It just has to be a movement where terminal emulators support these features in a good way and promote it. There are some questions about potential conflicts between the emulator app and the shell command but I think those could be solved in different clever ways.

    May I introduce you to micro? :)

  5. ereid7 commented on Dec 29, 2025

    @ereid7

    This issue is important to me. I need to be able to use shift+enter in opencode in warp.

    anomalyco/opencode#1505

  6. Torrey-Smith-165 commented on Dec 30, 2025

    @Torrey-Smith-165

    I'm with @ereid7 and about to switch off warp if this doesn't get fixed in the next couple of days.

  7. romanwozniak commented on Jan 6, 2026

    @romanwozniak

    I came here after spending hours and hours of time trying to find how to get the following keybindings to work in Warp terminal on macOS with opencode:

    • Shift + Enter – new line
    • Cmd + Left/Right – move to the beginning/end of line
    • Cmd + Shift + Left/Right – select text to the beginning/end of line

    I had some limited success using 3rd party solution like Karabiner-Elements, but it didn't cover all the scenarios either, which forced me to give Ghostty a try (which is a blast and works as expected). Since Warp and Ghostty are two different products with different philosophies, I currently use both for different use cases, but this is less than ideal too.

    I would appreciate it if Warp team would post an update on providing support for Kitty keyboard protocol or, otherwise, guide me on how to use Warp to support keybindings specified above.

  8. gwtaylor commented on Jan 16, 2026

    @gwtaylor

    I want to echo what @romanwozniak just said (and exactly those same key combos) but with a slightly different use case!

    These key combinations work great in Warp driving Claude Code directly:

    • Shift + Enter - new line
    • Cmd + Left/Right – move to the beginning/end of line

    and I have built muscle memory!

    But lately I am experimenting with slightly different workflows than Warp -> Claude Code, such as:

    • Warp -> tmux1 -> Claude Code

    where these no longer work.

    A similar investigation has let me here and believe strongly that addressing the OP's request would unlock these workflows.

    Footnotes

    1. I do have set-window-option -g xterm-keys on in my ~/.tmux.conf, which, along with:

      bindkey "^[[1;3D" backward-word
      bindkey "^[[1;3C" forward-word

      in my ~/.zshrc is necessary to make Opt-Left and Opt-Right work in Warp->tmux. But this doesn't enable Shift+Enter or Cmd+Left/Right.
      I have also tried:

      set -s extended-keys always
      set -s extended-keys-format csi-u

      in ~/.tmux.conf to no avail. ↩

  9. felipeplets commented on Jan 21, 2026

    @felipeplets

    Same here. As I use Warp and have been implementing https://github.com/felipeplets/rooms/ as a git worktree manager I ended up facing the same issues.

    Using rooms inside warp is a huge friction since the PTY won't receive these keys with modifiers (i.e.: shift+enter).

  10. alokedesai commented on Feb 6, 2026

    @alokedesai
    Contributor

    Hi all, thanks for your patience. The latest version of Warp (v0.2026.02.04.08.20.stable_02) now has support for the Kitty keyboard protocol. I'm going to close this out but please file an issue if you see any bugs. Thanks!

  11. prime-optimal commented on Feb 9, 2026

    @prime-optimal

    I updated and am running v0.2026.02.04.08.20.stable_03 and there doesn't seem to be any change because it still doesn't work.

    opencode.json is set to: "input_newline": "shift+return,ctrl+return,alt+return,ctrl+j",

    i even set shift+return to insert new line in warp's settings but that didn't help either (though it does insert a new line inside warp)

  12. romanwozniak commented on Feb 9, 2026

    @romanwozniak

    Hi @alokedesai, thanks for working on this. Does the support of Kitty keyboard protocol in Warp come with support for the super key modifier? I can't get it working in opencode/claude code, e.g.

    "input_line_home": "super+left",
    "input_line_end": "super+right",
    "input_select_line_home": "super+shift+left",
    "input_select_line_end": "super+shift+right",
    
  13. alokedesai commented on Feb 9, 2026

    @alokedesai
    Contributor

    Hi folks, unfortunately we had to rollback Kitty keyboard protocol has it broke some core neovim flows.

    I'll ping back here as soon as we have a rollforward. Sorry for the issues here!

  14. alokedesai commented on Mar 9, 2026

    @alokedesai
    Contributor

    Hey all, kitty keyboard protocol support is rolled forward on our Preview build: https://warp.dev/download-preview

    It should be out in our Stable build this week assuming there are no issues.

  15. alokedesai commented on Mar 20, 2026

    @alokedesai
    Contributor

    Hey all, the latest version of Warp now has support for the Kitty keyboard protocol. Thanks for your patience here and let me know if you see any issues!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working.

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions