The window blinks (white flash) when pressing the left/right arrow in Git Bash #20872

Closed
opened 2026-01-31 07:26:28 +00:00 by claunia · 8 comments
Owner

Originally created by @FabioTurati-NTT on GitHub (Nov 23, 2023).

Windows Terminal version

1.19.3172.0

Windows build number

10.0.19045.3570

Other Software

GNU bash, version 5.2.15, that came with Git 2.40.1.windows.1

Steps to reproduce

Just open a Git Bash shell and press either the right or left arrow key, the one that would move the cursor if there was some text. Every time you press the key, the window blinks.

Some more notes:

  • It only happens with Git Bash: with CMD or Powershell everything is fine.
  • Moreover, with terminal 1.18.2822.0 (the regular, non-preview version) I don't see the issue, I only see it with the preview version.
  • Turning the AtlasEngine on or off doesn't change anything

Expected Behavior

Nothing

Actual Behavior

The window blinks, that is, there's a white flash.

Originally created by @FabioTurati-NTT on GitHub (Nov 23, 2023). ### Windows Terminal version 1.19.3172.0 ### Windows build number 10.0.19045.3570 ### Other Software GNU bash, version 5.2.15, that came with Git 2.40.1.windows.1 ### Steps to reproduce Just open a Git Bash shell and press either the right or left arrow key, the one that would move the cursor if there was some text. Every time you press the key, the window blinks. Some more notes: - It only happens with Git Bash: with CMD or Powershell everything is fine. - Moreover, with terminal 1.18.2822.0 (the regular, non-preview version) I don't see the issue, I only see it with the preview version. - Turning the AtlasEngine on or off doesn't change anything ### Expected Behavior Nothing ### Actual Behavior The window blinks, that is, there's a white flash.
claunia added the Needs-TriageIssue-BugNeeds-Attention labels 2026-01-31 07:26:28 +00:00
Author
Owner

@github-actions[bot] commented on GitHub (Nov 23, 2023):

Hi I'm an AI powered bot that finds similar issues based off the issue title.

Please view the issues below to see if they solve your problem, and if the issue describes your problem please consider closing this one and thumbs upping the other issue to help us prioritize it. Thank you!

Closed similar issues:

Note: You can give me feedback by thumbs upping or thumbs downing this comment.

@github-actions[bot] commented on GitHub (Nov 23, 2023): Hi I'm an AI powered bot that finds similar issues based off the issue title. Please view the issues below to see if they solve your problem, and if the issue describes your problem please consider closing this one and thumbs upping the other issue to help us prioritize it. Thank you! ### Closed similar issues: - [Windows Terminal With Git Bash Flickering (#7308)](https://github.com/microsoft/terminal/issues/7308), similarity score: 0.81 > Note: You can give me feedback by thumbs upping or thumbs downing this comment.
Author
Owner

@FabioTurati-NTT commented on GitHub (Nov 23, 2023):

Closed similar issues:

It certainly looks similar, but I'm not sure it's the same thing. As I said, I see this behaviour with Terminal preview, but not with the normal one. If it really depends on set bell-style visible, I don't see why there would be a difference between the two versions.

I'll keep it open for now.

@FabioTurati-NTT commented on GitHub (Nov 23, 2023): > ### Closed similar issues: > * [Windows Terminal With Git Bash Flickering (#7308)](https://github.com/microsoft/terminal/issues/7308), similarity score: 0.81 It certainly looks similar, but I'm not sure it's the same thing. As I said, I see this behaviour with Terminal preview, but not with the normal one. If it really depends on `set bell-style visible`, I don't see why there would be a difference between the two versions. I'll keep it open for now.
Author
Owner

@j4james commented on GitHub (Nov 25, 2023):

The way git bash triggers a visual bell is by enabling and disabling reverse screen mode, but it does this without any delay, so the transition can sometimes be too fast to be seen. The difference between the preview version of Windows Terminal and the release version, is that the former uses the Atlas render engine by default, and the latter uses the DirectX engine, and the reverse screen transition is more likely to be seen in the Atlas engine.

I think you'll find you'll get the same white flash in the release version of Windows Terminal if you enable the "new text renderer" in the advanced section of the profile configuration.

In short, this is almost certainly a duplicate of #7308.

@j4james commented on GitHub (Nov 25, 2023): The way git bash triggers a visual bell is by enabling and disabling reverse screen mode, but it does this without any delay, so the transition can sometimes be too fast to be seen. The difference between the preview version of Windows Terminal and the release version, is that the former uses the Atlas render engine by default, and the latter uses the DirectX engine, and the reverse screen transition is more likely to be seen in the Atlas engine. I think you'll find you'll get the same white flash in the release version of Windows Terminal if you enable the "new text renderer" in the advanced section of the profile configuration. In short, this is almost certainly a duplicate of #7308.
Author
Owner

@zadjii-msft commented on GitHub (Nov 29, 2023):

@FabioTurati-NTT Can you confirm that theory/? You should be able to find the renderer settings under "Rendering" (you'll need to open a new tab after saving - that setting doesn't hot-reload)

@zadjii-msft commented on GitHub (Nov 29, 2023): @FabioTurati-NTT Can you confirm that theory/? You should be able to find the renderer settings under "Rendering" (you'll need to open a new tab after saving - that setting doesn't hot-reload)
Author
Owner

@FabioTurati-NTT commented on GitHub (Nov 30, 2023):

@j4james @zadjii-msft AtlasEngine was my first suspicion too (I even wrote it among the notes of the repro steps), but it seems to be something else:

  • With the release version (1.18), no matter whether the AtlasEngine is on or off, it never blinks.
  • With the preview version (1.19), no matter whether the AtlasEngine is on or off, it always blinks.

To turn it on or off I tried both from Settings -> Rendering and from Settings -> Git Bash -> Use the new text renderer ("AtlasEngine"). And after every change I saved and restarted the whole Terminal, to avoid problems with hot-reloading. But the result is always the same: preview always blinks, release doesn't ever.

And by the way, I checked: the problem is indeed the set bell-style visible described in https://github.com/microsoft/terminal/issues/7308, because setting set bell-style none solves the issue.

@FabioTurati-NTT commented on GitHub (Nov 30, 2023): @j4james @zadjii-msft AtlasEngine was my first suspicion too (I even wrote it among the notes of the repro steps), but it seems to be something else: - With the release version (1.18), no matter whether the AtlasEngine is on or off, it never blinks. - With the preview version (1.19), no matter whether the AtlasEngine is on or off, it always blinks. To turn it on or off I tried both from `Settings -> Rendering` and from `Settings -> Git Bash -> Use the new text renderer ("AtlasEngine")`. And after every change I saved and restarted the whole Terminal, to avoid problems with hot-reloading. But the result is always the same: preview always blinks, release doesn't ever. And by the way, I checked: the problem is indeed the `set bell-style visible` described in https://github.com/microsoft/terminal/issues/7308, because setting `set bell-style none` solves the issue.
Author
Owner

@j4james commented on GitHub (Nov 30, 2023):

@FabioTurati-NTT Sorry, I missed your mention of the Atlas engine in the original report. But the bottom line is that it's meant to produce a white flash. It's just that it's dependent on timing, so it doesn't always show consistently. Personally I've never seen it in the DX engine, but it shows most of the time in the Atlas engine. Ideally it should be working more consistently - we're tracked that in issue #14897.

I'm not sure why you're seeing a difference in behavior between versions 1.18 and 1.19 - possibly there was a change in the render code that affected the timing - but as long set bell-style none solves the problem for you, it's essentially working as expected.

@j4james commented on GitHub (Nov 30, 2023): @FabioTurati-NTT Sorry, I missed your mention of the Atlas engine in the original report. But the bottom line is that it's _meant_ to produce a white flash. It's just that it's dependent on timing, so it doesn't always show consistently. Personally I've never seen it in the DX engine, but it shows most of the time in the Atlas engine. Ideally it should be working more consistently - we're tracked that in issue #14897. I'm not sure why you're seeing a difference in behavior between versions 1.18 and 1.19 - possibly there was a change in the render code that affected the timing - but as long `set bell-style none` solves the problem for you, it's essentially working as expected.
Author
Owner

@FabioTurati-NTT commented on GitHub (Nov 30, 2023):

@j4james

But the bottom line is that it's meant to produce a white flash.

Makes sense. This means that my expectations about this bug are wrong: I initially thought the presence of a flash was a bug, but as it turns out, the problem is its absence.

It might still be interesting to understand why there's a difference between 1.18 and 1.19 regardless of the Atlas Engine, but since the newer version shows the correct behaviour, I think it wouldn't be that interesting after all. Let's call it a bug fixed for free!

In light of this I'm closing the issue. Thanks for the help!

@FabioTurati-NTT commented on GitHub (Nov 30, 2023): @j4james >But the bottom line is that it's meant to produce a white flash. Makes sense. This means that my expectations about this bug are wrong: I initially thought the _presence_ of a flash was a bug, but as it turns out, the problem is its _absence_. It might still be interesting to understand why there's a difference between 1.18 and 1.19 regardless of the Atlas Engine, but since the newer version shows the correct behaviour, I think it wouldn't be _that_ interesting after all. Let's call it a bug fixed for free! In light of this I'm closing the issue. Thanks for the help!
Author
Owner

@imvice commented on GitHub (Nov 26, 2024):

in case u still haven't solved your issue, there's this video:
https://www.youtube.com/watch?v=VxHT88haAPU

@imvice commented on GitHub (Nov 26, 2024): in case u still haven't solved your issue, there's this video: https://www.youtube.com/watch?v=VxHT88haAPU
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: starred/terminal#20872