12

I'm using the default theme. The terminal's colors are impossible to read, make no sense, and are inconsistent. I've tried switching themes but they're terrible in all the themes.

Here's what it looks like in the default. Are you able to read my yellow input against the gray background? And why isn't there a black background everywhere? Powershell terminal window

I realize there are settings that can manually set the fore/background colors. But I'm thinking something is broken for me because of how screwy the terminal behaves.

For example, here's what I see when I first start the terminal, type a bunch of stuff, backspace to delete half of it, resize the terminal pane, then delete some more. Notice how some of the deleted spaces have yellow and some have gray. Also notice how the area where the CWD would be shown is all black. Initial view

Here are the contents of my settings.json file:

{
    "window.zoomLevel": 0,
    "git.enableSmartCommit": true,
    "workbench.startupEditor": "newUntitledFile"
}

What needs fixing, and how?


Edit:

Just to satisfy your curiosity, I added this to my settings.json file:

"workbench.colorCustomizations": {
    "terminal.foreground": "#ffffff",
    "terminal.background": "#000000"
}

No joy: Ugly stuff still

1

5 Answers 5

12

On March 8th 2022 the default value for the integrated terminal "minimum contrast ratio" was updated from 1 (no effect) to 4.5 (minimal effect). Depending on your color settings and what is being displayed, this can cause your integrated terminal foreground colors to be wrong.

To disable this feature, override the default in your own settings.json file:

  "terminal.integrated.minimumContrastRatio": 1
3
  • Thank you! I've been searching all over for what changed with this update and caused only some characters to render in different colors. Commented Apr 9, 2022 at 5:16
  • 1
    Thanks for this, I was going nuts trying to figure out why Nord looked so wonky even after manually setting all the ANSI colors.
    – Aelarion
    Commented Dec 24, 2022 at 5:45
  • Thank you, bro! This helped me, despite I am working in Linux. I could not use previous solution with registry, but your advise fixed the problem at all. Commented Feb 12 at 8:40
8

Okay, so here's a list of all possible settings that you could tweak in your terminal window colorscheme: (source)

    "workbench.colorCustomizations": {
      "terminal.background":"#1D2021",
      "terminal.foreground":"#A89984",
      "terminalCursor.background":"#A89984",
      "terminalCursor.foreground":"#A89984",
      "terminal.ansiBlack":"#1D2021",
      "terminal.ansiBlue":"#0D6678",
      "terminal.ansiBrightBlack":"#665C54",
      "terminal.ansiBrightBlue":"#0D6678",
      "terminal.ansiBrightCyan":"#8BA59B",
      "terminal.ansiBrightGreen":"#95C085",
      "terminal.ansiBrightMagenta":"#8F4673",
      "terminal.ansiBrightRed":"#FB543F",
      "terminal.ansiBrightWhite":"#FDF4C1",
      "terminal.ansiBrightYellow":"#FAC03B",
      "terminal.ansiCyan":"#8BA59B",
      "terminal.ansiGreen":"#95C085",
      "terminal.ansiMagenta":"#8F4673",
      "terminal.ansiRed":"#FB543F",
      "terminal.ansiWhite":"#A89984",
      "terminal.ansiYellow":"#FAC03B"
    }

Now for me, the colors of folder names was too bright over an even brighter background color that highlighted them and I couldn't read squat (that's because of my VSCode theme called NightOwl -- :P Sarah) so I thought (wrongly) to change terminal.background and terminal.foreground properties but that refer to the entire rendered window of the terminal.

Because these properties are actually named after Ansi Escape Codes, what I was actually looking for were these properties: terminal.ansiBlue for folder name text color and terminal.ansiGreen for folder name background highlight color.

As soon as I tweaked those, my terminal was good to go. The way to do it is to just set all these settings and start removing or changing them to see which is which for your preference. K Thx Bye

Also beware that terminal.ansiGreen is used by git diff as a color to show additions.

1
  • To change these settings: Search for "workbench: color customizations" and open the settings.json file. I changed terminal.foreground and terminal.ansiBlack to #8F7F6C.
    – Noumenon
    Commented Feb 17, 2021 at 1:39
7

There might be something wrong in your console settings, you might want to remove the content of HKCU\Console in your registry. Save it before, obviously, but there shouldn't be any side effect: it'll just be recreated with the default settings.

1
  • 1
    Instead of all keys, removal of keys having color in name like popcolor, colortable etc. solved the problem for me. Yes, I removed these keys from nested directories also.
    – Sourabh
    Commented Jan 20, 2020 at 20:12
0

There are two solutions. Xavier's solution works, and mklement0's comment was also correct.

Solution #1

Do what Xavier said (and upvote his answer).

But, if you don't want to mess up registry settings (or if, like me, you have lots of registry settings nestled under the HKCU\Console root), then...

Solution #2

  1. Get Windows 10 build number 18309 (or newer)
    • Join the Windows Insider Program
    • Make sure you're on a "ring" that includes a new-enough build. For me at this moment that meant joining the "fast" ring
    • Wait forever for updates to finish installing
  2. Add "terminal.integrated.windowsEnableConpty": true to your settings.json
  3. Restart terminals
  4. Upvote mklement0's comment
  5. ...
  6. Profit!
-1

I am new to VS Code (and I'm trying to better my PowerShell skills) and have/had this same problem. Deleting all the Reg keys cited above related to colors seemed to fix it, but I believe the root problem is that VS Code seems to be trying to honor the color scheme set up outside the VS Code Terminal itself, from the shell. Really annoying and I'm not sure how to separate the two.

I had setup a blue background/yellow font scheme in PS prior to installing VS Code. That was the same color scheme the terminal in VS Code was displaying directly around the text.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.