microsoft / microsoft/terminal

Send different key codes for `Tab` and `Ctrl+I` (READ: support `modifyOtherKeys`)

Open
#13,792 9 comments 10 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Area-Input Area-VT Help Wanted Issue-Feature Issue-Task Product-Conhost
Dominant language
C++
Stars
105k
Forks
9.6k
Avg merge
3d 17h
Merged PRs (30d)
29

Description

# Description of the new feature/enhancement
When using ms-terminal, `Tab` and `Ctrl+I` send the same key codes. This makes it impossible to map them differently, for example in vim or nvim (which support this functionality: https://github.com/neovim/neovim/pull/17932#issue-1188088238).

If ms-terminal sent different key codes (like for example kitty or alacritty terminal), then it would be possible to map these keys to different functionalities in software running inside the terminal. This would enhance user experience and make it easier to migrate from the aforementioned terminals.

# Proposed technical implementation details (optional)

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by reviewing the terminal's keyboard-input handling and the modifyOtherKeys behavior described in the issue. Compare how kitty and alacritty encode Tab versus Ctrl+I, then verify that ms-terminal emits distinct codes and that vim or neovim can map them independently.

Written by the indexing model from the issue text.

Assessment

Tech stack
cpp, vim
Domain
cli
Issue type
Feature
Difficulty
4/5
Estimated time
3-5 days
Activity status
Quiet
Clarity
Mostly clear
Newbie friendliness
48/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.