Change:
"@vscode/vscode-languagedetection": "1.0.21", "@vscode/windows-process-tree": "^0.5.0", "@vscode/windows-registry": "^1.1.0", <del> "@xterm/addon-canvas": "0.6.0-beta.20", "@xterm/addon-image": "0.7.0-beta.18", "@xterm/addon-search": "0.14.0-beta.20", "@xterm/addon-serialize": "0.12.0-beta.20", "@xterm/addon-unicode11": "0.7.0-beta.20", "@xterm/addon-webgl": "0.17.0-beta.20", "@xterm/headless": "5.4.0-beta.20", "@xterm/xterm": "5.4.0-beta.20", </del> <ins> "@xterm/addon-canvas": "0.6.0-beta.30", "@xterm/addon-image": "0.7.0-beta.28", "@xterm/addon-search": "0.14.0-beta.30", "@xterm/addon-serialize": "0.12.0-beta.30", "@xterm/addon-unicode11": "0.7.0-beta.30", "@xterm/addon-webgl": "0.17.0-beta.30", "@xterm/headless": "5.4.0-beta.30", "@xterm/xterm": "5.4.0-beta.30", </ins> "cookie": "^0.4.0", "graceful-fs": "4.2.11", "http-proxy-agent": "^7.0.0",

Discussion:
Type: <bBug</bText selection in the terminal seems to render by changing the background color of text. While that seems reasonable on the surface, it does weird things with powerline type features and other highlighting that might be built into the shell. Notice in the second screenshot below that different parts of the powerline are no longer visible nor are the highlights on directories. ! ! Contrast this with Windows Terminal ! ! Perhaps vscode could blend the selection background and foreground colors with the existing colors instead of overwriting them. Or render selection as an overlay. VS Code version: Code - Insiders 1.86.0-insider (, 2023-12-08T11:53:10.286Z) OS version: WindowsNT x64 10.0. Modes: <details<summarySystem Info</summary </detailsExtensions: none<details<summaryA/B Experiments</summary</details<!-- generated by issue reporter --
It was actually a pretty big feature to get the behavior working that you're saying you want changed . The overlay option was how it worked before (and actually how it still worked with ) and it was trivial to add as it's simply rectangles drawn on top of the content. Unfortunately it has big accessibility issues as it does nothing to ensure contrast is sufficient, making the text quite unreadable. The powerline specific "problem" is happening due to the fact that powerline is essentially a hack where it alternates between the background color (which changes with selection) and special characters (which changes to ensure minimum contrast ratio). I have considered making it a little nicer, perhaps by just hiding the powerline symbols completely, but its not clear what the right behavior is here. ! We could quite easily make the above do this: ! But anything more clever than that may be a little too complex, I'm hesitant to try to track "powerline" state in the cells that simply change their background color. FWIW I also hit this problem, this is what mine looks like: !
I would make the case that if background colors in terminal output are supported then having the terminal ever overwrite those background colors is necessarily a problem. I wouldn't call powerline a hack any more than I would call highlighting directories using a background color a hack. Color conveys information in the same way glyphs do.

If I choose to output something in a particular way I don't want that information arbitrarily erased by the terminal. Either the background color is reserved for selection highlighting or it's not. If it's not reserved and users are allowed to choose background colors to convey information, then the terminal does not have the authority to erase that entirely. Munge based on user settings yes, erase no. As far as solutions, I can think of a few possibilities: existing background colors instead of overwriting them. This is what other terminals seem to do and seems like a happy middle ground. the selection background color and the existing background color. It may not meet the desired contrast though. the overlay approach to be used. Between my vscode theme and my terminal configuration I have enough control to maintain the level of contrast I need. as an opt-out and don't overwrite background colors. ! !
Thanks for taking the time to put forward the proposals. I'm leaning towards 2 and blending with the selection color @ 50% opacity. Contrast is less of a problem as the foreground changes dynamically due to minimumContrastRatio. Plus we can have some special logic on the powerline glyphs to also be included in the blending, they already do something similar in how they ignore the minimumContrastRatio requirements as they are seen as background by the user.
WIP: !
<img alt="image" src=""<br<img alt="image" src=""Tried to verify using the theme. Not sure if this is the expected result.
<!-- AUTHORVERIFICATIONREQUEST --This bug has been fixed in the latest release of ! you can help us out by commenting if things are now working as expected. If things still don't seem right, please ensure you're on version of Insiders (today's or later - you can use in the command palette to check), and leave a comment letting us know what isn't working as expected. Happy Coding!
The behavior on insiders doesn't quite match WIP screenshot, which matches my desired behavior. In practice powerline background colors are still being overwritten. !
can you share your settings file? Still seems to work as expected for me !
I'm able to repro in latest insiders () with no VS Settings, no pwsh config (except loading oh-my-posh), and default oh-my-posh config.

Maybe related to oh-my-posh if you're using a different powerline implementation? pwsh config !
Can repro with oh-my-posh, looking into it !
<img width="954" alt="image" src=""Looks like it works