microsoft / microsoft/terminal

In tmux 3.4, ZSH does not work correctly either locally or by SSH

Open
#18,154 4 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Help Wanted Issue-Bug Needs-Tag-Fix Priority-3 Product-Terminal
Dominant language
C++
Stars
105k
Forks
9.6k
Avg merge
3d 17h
Merged PRs (30d)
29

Description

Windows Terminal version

1.22.2912.0

Windows build number

10.0.22631.4391

Other Software
  • Git for Windows 2.47.0.windows.2
  • zsh 5.9
  • tmux 3.4
  • OpenSSH_9.9p1, OpenSSL 3.2.3 3 Sep 2024
Steps to reproduce

There are two issues that appear related as they are rendering problems that only occur when using ZSH. In order to reproduce the issues, either of the following is required:

  • A Git bash installation with ZSH
  • Connecting to a remote Linux server through SSH (via Git Bash) that is running ZSH.

Issue 1 Steps

  1. Start a terminal with ZSH using either of the aforementioned setups.
  2. Start typing any command. Longer commands will display the issue more clearly.
  3. Delete the command.

Issue 2 Steps

This specific issue only occurs on Linux servers with tmux and ZSH:

  1. Connect to a server using SSH. The terminal must be ZSH.
  2. Open tmux
  3. Open a new vertical split.
  4. Switch to the right-side split and enter any command.
  5. Now switch back to the original split and enter a different command.

Note

The flickering issue is not present in version 1.18.10301. The tmux issue however is present on any version since.

Expected Behavior

For both issues, the terminal should render the text correctly and the cursor should not flicker.

Actual Behavior

Issue 1

When entering or deleting text, the cursor jumps to the beginning of the current line and then back to the end rapidly. This is easier to see when deleting a command. Unfortunately it appears that screen recording doesn't showcase the issue properly so I can't show it.

Issue 2

Image
See that the ~/Documents > should've appeared on the right pane, and there's a gap on the right side before the cursor where ~/Documents should've appeared.

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

Reproduce both issues using Git Bash with zsh and the described SSH, tmux, and vertical-split setup, comparing behavior with Windows Terminal 1.18.10301 where relevant. Trace the terminal rendering behavior involved in cursor movement and pane prompts; done means commands and prompts render correctly without cursor flicker or missing text.

Written by the indexing model from the issue text.

Assessment

Tech stack
zsh
Domain
cli
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.