Windows Powershell is Unreadable in High-Contrast Light Modes (And Any Other Modes) #23679

Closed
opened 2026-01-31 08:49:02 +00:00 by claunia · 12 comments
Owner

Originally created by @MarjaE2 on GitHub (Oct 10, 2025).

Windows Terminal version

1.22.12111.0

Windows build number

26100.6584

Other Software

No response

Steps to reproduce

  1. Set Windows to a light high-contrast theme. (I can't read dark mode, or faint text in light mode; unfortunately Windows lacks really high-contrast themes.)
  2. Open Powershell.
  3. Set any of the light color themes.
  4. Try to use Powershell.

Expected Behavior

In light mode, all colors should be dark, and when using high-contrast themes, black.

In dark mode, all colors should be light.

Actual Behavior

In light mode, most text is white or another light color indistinguishable from it.

Originally created by @MarjaE2 on GitHub (Oct 10, 2025). ### Windows Terminal version 1.22.12111.0 ### Windows build number 26100.6584 ### Other Software _No response_ ### Steps to reproduce 1. Set Windows to a light high-contrast theme. (I can't read dark mode, or faint text in light mode; unfortunately Windows lacks *really* high-contrast themes.) 2. Open Powershell. 3. Set any of the light color themes. 4. Try to use Powershell. ### Expected Behavior In light mode, all colors should be dark, and when using high-contrast themes, black. In dark mode, all colors should be light. ### Actual Behavior In light mode, most text is white or another light color indistinguishable from it.
claunia added the Needs-TriageArea-RenderingIssue-BugProduct-Terminal labels 2026-01-31 08:49:03 +00:00
Author
Owner

@kesharwaniayush commented on GitHub (Oct 11, 2025):

Windows Terminal Light/High-Contrast Text Visibility

Windows Terminal version: 1.22.12111.0
Windows build number: 26100.6584
Other Software: N/A


Problem

Using Windows Terminal with PowerShell in a light Windows theme or high-contrast mode can make text unreadable.
Most default color schemes are designed for dark backgrounds, so light text may blend with light backgrounds, making PowerShell difficult or impossible to read.


Steps to Reproduce

  1. Set Windows to a light high-contrast theme.

    Note: Dark mode or faint text in light mode is unreadable; Windows lacks truly high-contrast themes.

  2. Open PowerShell in Windows Terminal.
  3. Set any of the light color themes.
  4. Try to use PowerShell.

Expected Behavior

  • In light mode, all text should be dark (e.g., black).
  • In dark mode, all text should be light (e.g., white).
  • High-contrast themes should respect visibility rules.

Actual Behavior

  • In light mode, most text appears white or very light, making it indistinguishable from the background.
  • This makes PowerShell unusable in light/high-contrast modes.

Suggested Solutions

1. Use a Light-Friendly Predefined Color Scheme

  • Go to Settings → Color schemes.
  • Select a light scheme such as:
    • Campbell
    • Tango Light
    • One Half Light
  • Apply it to your PowerShell profile.

2. Create a Custom Light/High-Contrast Color Scheme

  • Set background: #FFFFFF
  • Set foreground: #000000
  • Adjust ANSI colors to dark shades for readability.

Example JSON scheme:

{
    "name": "HighContrastLight",
    "background": "#FFFFFF",
    "foreground": "#000000",
    "black": "#000000",
    "red": "#800000",
    "green": "#008000",
    "yellow": "#808000",
    "blue": "#000080",
    "purple": "#800080",
    "cyan": "#008080",
    "white": "#C0C0C0",
    "brightBlack": "#808080",
    "brightRed": "#FF0000",
    "brightGreen": "#00FF00",
    "brightYellow": "#FFFF00",
    "brightBlue": "#0000FF",
    "brightPurple": "#FF00FF",
    "brightCyan": "#00FFFF",
    "brightWhite": "#FFFFFF"
}


3. Handle Windows High Contrast Mode

High-contrast themes may override terminal colors.

Options:

  • Temporarily disable Windows High Contrast while using Terminal.
  • Or match your terminal color scheme with high-contrast colors.

4. Enable Legacy Console Colors

  • Open Settings → Profiles → PowerShell → Appearance.
  • Enable “Use legacy console colors”.
  • This can improve visibility in high-contrast setups.

  • Use a custom light/high-contrast color scheme to ensure all text is clearly readable in any Windows theme.
  • This guarantees full accessibility for users who rely on high-contrast settings or cannot read faint/dark text.
@kesharwaniayush commented on GitHub (Oct 11, 2025): # Windows Terminal Light/High-Contrast Text Visibility **Windows Terminal version:** 1.22.12111.0 **Windows build number:** 26100.6584 **Other Software:** N/A --- ## Problem Using **Windows Terminal** with **PowerShell** in a **light Windows theme** or **high-contrast mode** can make text unreadable. Most default color schemes are designed for dark backgrounds, so light text may blend with light backgrounds, making PowerShell difficult or impossible to read. --- ## Steps to Reproduce 1. Set **Windows** to a **light high-contrast theme**. > Note: Dark mode or faint text in light mode is unreadable; Windows lacks truly high-contrast themes. 2. Open **PowerShell** in Windows Terminal. 3. Set **any of the light color themes**. 4. Try to use PowerShell. --- ## Expected Behavior - In **light mode**, all text should be **dark** (e.g., black). - In **dark mode**, all text should be **light** (e.g., white). - High-contrast themes should respect visibility rules. --- ## Actual Behavior - In **light mode**, most text appears **white or very light**, making it **indistinguishable from the background**. - This makes PowerShell **unusable** in light/high-contrast modes. --- ## Suggested Solutions ### 1. Use a Light-Friendly Predefined Color Scheme - Go to **Settings → Color schemes**. - Select a light scheme such as: - `Campbell` - `Tango Light` - `One Half Light` - Apply it to your **PowerShell profile**. ### 2. Create a Custom Light/High-Contrast Color Scheme - Set **background**: `#FFFFFF` - Set **foreground**: `#000000` - Adjust ANSI colors to dark shades for readability. **Example JSON scheme:** ```json { "name": "HighContrastLight", "background": "#FFFFFF", "foreground": "#000000", "black": "#000000", "red": "#800000", "green": "#008000", "yellow": "#808000", "blue": "#000080", "purple": "#800080", "cyan": "#008080", "white": "#C0C0C0", "brightBlack": "#808080", "brightRed": "#FF0000", "brightGreen": "#00FF00", "brightYellow": "#FFFF00", "brightBlue": "#0000FF", "brightPurple": "#FF00FF", "brightCyan": "#00FFFF", "brightWhite": "#FFFFFF" } ``` --- ### 3. Handle Windows High Contrast Mode High-contrast themes may override terminal colors. **Options:** - Temporarily disable Windows High Contrast while using Terminal. - Or match your terminal color scheme with high-contrast colors. ### 4. Enable Legacy Console Colors - Open **Settings → Profiles → PowerShell → Appearance**. - Enable **“Use legacy console colors”**. - This can improve visibility in high-contrast setups. --- ### Recommended Approach - Use a **custom light/high-contrast color scheme** to ensure all text is clearly readable in any Windows theme. - This guarantees full accessibility for users who rely on high-contrast settings or cannot read faint/dark text.
Author
Owner

@lhecker commented on GitHub (Oct 13, 2025):

Can you please post a screenshot of the issue?

@lhecker commented on GitHub (Oct 13, 2025): Can you please post a screenshot of the issue?
Author
Owner

@MarjaE2 commented on GitHub (Oct 13, 2025):

Image

The 1st part is yellow and almost unreadable, the last white and completely unreadable.

@MarjaE2 commented on GitHub (Oct 13, 2025): <img width="925" height="129" alt="Image" src="https://github.com/user-attachments/assets/3ae927b9-bbc6-4939-8fed-4675e27ec5c7" /> The 1st part is yellow and almost unreadable, the last white and completely unreadable.
Author
Owner

@DHowett commented on GitHub (Oct 13, 2025):

For what it is worth, these colors are chosen directly by PowerShell and we have limited control over them.

High contrast mode automatically enables1 "adjust indistinguishable colors", which mitigates this effect completely by darkening the yellow and the white.

Image

can you see whether you have that setting disabled in the Appearance section of your PowerShell profile settings?


  1. unless you have disabled this feature. ↩︎

@DHowett commented on GitHub (Oct 13, 2025): For what it is worth, these colors are chosen directly by PowerShell and we have limited control over them. High contrast mode automatically enables[^1] "adjust indistinguishable colors", which mitigates this effect completely by darkening the yellow and the white. <img width="1422" height="66" alt="Image" src="https://github.com/user-attachments/assets/2fffc723-c7a3-4b06-933c-8822c759a7ed" /> can you see whether you have that setting disabled in the Appearance section of your PowerShell profile settings? [^1]: unless you have disabled this feature.
Author
Owner

@MarjaE2 commented on GitHub (Oct 13, 2025):

It was disabled by default. I enabled it. I get:

Image

It doesn't seem to affect white-on-white text.

@MarjaE2 commented on GitHub (Oct 13, 2025): It was disabled by default. I enabled it. I get: <img width="409" height="128" alt="Image" src="https://github.com/user-attachments/assets/76eef1bf-4485-46f3-99e0-4682184f9269" /> It doesn't seem to affect white-on-white text.
Author
Owner

@DHowett commented on GitHub (Oct 13, 2025):

Interesting. Can you share your settings.json after that? Sorry!

@DHowett commented on GitHub (Oct 13, 2025): Interesting. Can you share your settings.json after that? Sorry!
Author
Owner

@MarjaE2 commented on GitHub (Oct 13, 2025):

{
    "$help": "https://aka.ms/terminal-documentation",
    "$schema": "https://aka.ms/terminal-profiles-schema",
    "actions": [],
    "copyFormatting": "none",
    "copyOnSelect": false,
    "defaultProfile": "{574e775e-4f2a-5b96-ac1e-a2962a402336}",
    "disableAnimations": true,
    "keybindings": 
    [
        {
            "id": "Terminal.CopyToClipboard",
            "keys": "ctrl+c"
        },
        {
            "id": "Terminal.PasteFromClipboard",
            "keys": "ctrl+v"
        },
        {
            "id": "Terminal.DuplicatePaneAuto",
            "keys": "alt+shift+d"
        }
    ],
    "newTabMenu": 
    [
        {
            "type": "remainingProfiles"
        }
    ],
    "profiles": 
    {
        "defaults": 
        {
            "adjustIndistinguishableColors": "always",
            "colorScheme": "One Half Light"
        },
        "list": 
        [
            {
                "commandline": "%SystemRoot%\\System32\\WindowsPowerShell\\v1.0\\powershell.exe",
                "guid": "{61c54bbd-c2c6-5271-96e7-009a87ff44bf}",
                "hidden": false,
                "name": "Windows PowerShell"
            },
            {
                "commandline": "%SystemRoot%\\System32\\cmd.exe",
                "guid": "{0caa0dad-35be-5f56-a8ff-afceeeaa6101}",
                "hidden": false,
                "name": "Command Prompt"
            },
            {
                "guid": "{574e775e-4f2a-5b96-ac1e-a2962a402336}",
                "hidden": false,
                "name": "PowerShell",
                "source": "Windows.Terminal.PowershellCore"
            },
            {
                "guid": "{b453ae62-4e3d-5e58-b989-0a998ec441b8}",
                "hidden": false,
                "name": "Azure Cloud Shell",
                "source": "Windows.Terminal.Azure"
            },
            {
                "guid": "{51855cb2-8cce-5362-8f54-464b92b32386}",
                "hidden": false,
                "name": "Ubuntu",
                "source": "CanonicalGroupLimited.Ubuntu_79rhkp1fndgsc"
            },
            {
                "guid": "{e7ed9e10-6f40-54fe-8f56-127f7e23a1ac}",
                "hidden": false,
                "name": "Ubuntu",
                "source": "Microsoft.WSL"
            },
            {
                "guid": "{2c4de342-38b7-51cf-b940-2309a097f518}",
                "hidden": true,
                "name": "Ubuntu",
                "source": "Windows.Terminal.Wsl"
            }
        ]
    },
    "schemes": [],
    "theme": "system",
    "themes": []
}
@MarjaE2 commented on GitHub (Oct 13, 2025): ```json { "$help": "https://aka.ms/terminal-documentation", "$schema": "https://aka.ms/terminal-profiles-schema", "actions": [], "copyFormatting": "none", "copyOnSelect": false, "defaultProfile": "{574e775e-4f2a-5b96-ac1e-a2962a402336}", "disableAnimations": true, "keybindings": [ { "id": "Terminal.CopyToClipboard", "keys": "ctrl+c" }, { "id": "Terminal.PasteFromClipboard", "keys": "ctrl+v" }, { "id": "Terminal.DuplicatePaneAuto", "keys": "alt+shift+d" } ], "newTabMenu": [ { "type": "remainingProfiles" } ], "profiles": { "defaults": { "adjustIndistinguishableColors": "always", "colorScheme": "One Half Light" }, "list": [ { "commandline": "%SystemRoot%\\System32\\WindowsPowerShell\\v1.0\\powershell.exe", "guid": "{61c54bbd-c2c6-5271-96e7-009a87ff44bf}", "hidden": false, "name": "Windows PowerShell" }, { "commandline": "%SystemRoot%\\System32\\cmd.exe", "guid": "{0caa0dad-35be-5f56-a8ff-afceeeaa6101}", "hidden": false, "name": "Command Prompt" }, { "guid": "{574e775e-4f2a-5b96-ac1e-a2962a402336}", "hidden": false, "name": "PowerShell", "source": "Windows.Terminal.PowershellCore" }, { "guid": "{b453ae62-4e3d-5e58-b989-0a998ec441b8}", "hidden": false, "name": "Azure Cloud Shell", "source": "Windows.Terminal.Azure" }, { "guid": "{51855cb2-8cce-5362-8f54-464b92b32386}", "hidden": false, "name": "Ubuntu", "source": "CanonicalGroupLimited.Ubuntu_79rhkp1fndgsc" }, { "guid": "{e7ed9e10-6f40-54fe-8f56-127f7e23a1ac}", "hidden": false, "name": "Ubuntu", "source": "Microsoft.WSL" }, { "guid": "{2c4de342-38b7-51cf-b940-2309a097f518}", "hidden": true, "name": "Ubuntu", "source": "Windows.Terminal.Wsl" } ] }, "schemes": [], "theme": "system", "themes": [] } ```
Author
Owner

@ukanuk commented on GitHub (Oct 19, 2025):

I'm seeing the same issue. I followed https://superuser.com/a/1861874/618270 to make colorScheme follow the Windows system theme light / dark mode (and not just the Terminal application theme). However, my first test of this revealed the Powershell issue. I then set Automatically adjust lightness of indistinguishable text = Always to attempt rectify that, but see no change.

Here is an excerpt from my settings.json after manual edits to add dark/light mode switching, and then after automatic edit to automatically distinguish colors.

        "defaults": 
        {
            "adjustIndistinguishableColors": "always",
            "colorScheme": 
            {
                "dark": "One Half Dark",
                "light": "One Half Light"
            }
        },

Image Image

Image
@ukanuk commented on GitHub (Oct 19, 2025): I'm seeing the same issue. I followed https://superuser.com/a/1861874/618270 to make `colorScheme` follow the Windows system theme light / dark mode (and not just the Terminal application theme). However, my first test of this revealed the Powershell issue. I then set `Automatically adjust lightness of indistinguishable text` = `Always` to attempt rectify that, but see no change. Here is an excerpt from my `settings.json` after manual edits to add dark/light mode switching, and then after automatic edit to automatically distinguish colors. ``` "defaults": { "adjustIndistinguishableColors": "always", "colorScheme": { "dark": "One Half Dark", "light": "One Half Light" } }, ``` <img width="558" height="310" alt="Image" src="https://github.com/user-attachments/assets/43ff9e29-084c-4f78-b74e-475b0a471e4f" /> <img width="558" height="310" alt="Image" src="https://github.com/user-attachments/assets/15e2e60d-36f7-4643-bbb7-45f9be9797dc" /> <img width="1116" height="619" alt="Image" src="https://github.com/user-attachments/assets/aba1557f-de99-4c55-86b9-856254384ee0" />
Author
Owner

@carlos-zamora commented on GitHub (Oct 22, 2025):

Alright, I took a closer look at this. Here's what I found:

  • PowerShell uses its own colors (as mentioned earlier in the thread). Looks like you can check them using Get-PSReadLineOption, which shows that "$([char]0x1b)[37m" is used. That evaluates to using the white color in the Terminal's color scheme.
  • One Half Light is defined in the defaults.json here
  • I opened two instances of Windows PowerShell using One Half Light: one with "adjust indistinguishable colors" set to always and another disabled. Here's the results:

adjustIndistinguishableColors enabled

Image

adjustIndistinguishableColors disabled

Image

At the end of the day, adjustIndistinguishableColors should result in the text being legible. It's surprising to see that it ended up doing the opposite! I think the move here is to fix that since updating PSReadLine's colors is out of our purview and color schemes in general can result in low contrast text. The adjustIndistinguishableColors setting should fix it and make all text legible.

@carlos-zamora commented on GitHub (Oct 22, 2025): Alright, I took a closer look at this. Here's what I found: - PowerShell uses its own colors (as mentioned earlier in the thread). Looks like you can check them using `Get-PSReadLineOption`, which shows that `"$([char]0x1b)[37m"` is used. That evaluates to using the `white` color in the Terminal's color scheme. - One Half Light is defined in the defaults.json [here](https://github.com/microsoft/terminal/blob/5ae95d7df0ee3050ad36b98cd8f3f8d55005f0d2/src/cascadia/TerminalSettingsModel/defaults.json#L217-L239) - I opened two instances of Windows PowerShell using One Half Light: one with "adjust indistinguishable colors" set to `always` and another disabled. Here's the results: ### `adjustIndistinguishableColors` enabled <img width="990" height="428" alt="Image" src="https://github.com/user-attachments/assets/fc5b3472-3637-47c5-9556-27b4888f0b61" /> ### `adjustIndistinguishableColors` disabled <img width="987" height="417" alt="Image" src="https://github.com/user-attachments/assets/840d9123-f2ff-460d-9f53-c8336a217ca9" /> At the end of the day, `adjustIndistinguishableColors` should result in the text being legible. It's surprising to see that it ended up doing the opposite! I think the move here is to fix that since updating PSReadLine's colors is out of our purview and color schemes in general can result in low contrast text. The `adjustIndistinguishableColors` setting should fix it and make all text legible.
Author
Owner

@zadjii-msft commented on GitHub (Oct 29, 2025):

Pretty sure this has been discussed previously in #15452 most specifically.

Also relevant to #12999

@zadjii-msft commented on GitHub (Oct 29, 2025): Pretty sure this has been discussed previously in #15452 most specifically. Also relevant to #12999
Author
Owner

@DHowett commented on GitHub (Oct 29, 2025):

Specifically this comment and beyond: https://github.com/microsoft/terminal/issues/15452#issuecomment-1574177377

@DHowett commented on GitHub (Oct 29, 2025): Specifically this comment and beyond: https://github.com/microsoft/terminal/issues/15452#issuecomment-1574177377
Author
Owner

@DHowett commented on GitHub (Oct 29, 2025):

I'm gonna close this one out as a duplicate of 15452 and move that one into the "frontlog"

@DHowett commented on GitHub (Oct 29, 2025): I'm gonna close this one out as a duplicate of 15452 and move that one into the "frontlog"
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: starred/terminal#23679