Skip to content

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

Closed as duplicate

Description

@MarjaE2

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.

Activity

  1. added theissue type on Oct 10, 2025
  2. added
    Issue-BugIt either shouldn't be doing this or needs an investigation.
    Needs-TriageIt's a new issue that the core contributor team needs to triage at the next triage meeting
    on Oct 10, 2025
  3. kesharwaniayush commented on Oct 11, 2025

    @kesharwaniayush

    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.

    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.
  4. lhecker commented on Oct 13, 2025

    @lhecker
    Member

    Can you please post a screenshot of the issue?

  5. MarjaE2 commented on Oct 13, 2025

    @MarjaE2
    Author
    Image

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

  6. DHowett commented on Oct 13, 2025

    @DHowett
    Member

    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?

    Footnotes

    1. unless you have disabled this feature. ↩

  7. MarjaE2 commented on Oct 13, 2025

    @MarjaE2
    Author

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

    Image

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

  8. added
    Needs-AttentionThe core contributors need to come back around and look at this ASAP.
    and removed
    Needs-Author-FeedbackThe original author of the issue/PR needs to come back and respond to something
    on Oct 13, 2025
  9. DHowett commented on Oct 13, 2025

    @DHowett
    Member

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

  10. MarjaE2 commented on Oct 13, 2025

    @MarjaE2
    Author
    {
        "$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": []
    }
  11. ukanuk commented on Oct 19, 2025

    @ukanuk

    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
  12. carlos-zamora commented on Oct 22, 2025

    @carlos-zamora

    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.

  13. added
    Area-RenderingText rendering, emoji, complex glyph & font-fallback issues
    and removed
    Needs-AttentionThe core contributors need to come back around and look at this ASAP.
    on Oct 22, 2025
  14. zadjii-msft commented on Oct 29, 2025

    @zadjii-msft
    Member

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

    Also relevant to #12999

  15. DHowett commented on Oct 29, 2025

    @DHowett
    Member

    Specifically this comment and beyond: #15452 (comment)

  16. DHowett commented on Oct 29, 2025

    @DHowett
    Member

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

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    Area-RenderingText rendering, emoji, complex glyph & font-fallback issuesIssue-BugIt either shouldn't be doing this or needs an investigation.Needs-TriageIt's a new issue that the core contributor team needs to triage at the next triage meetingProduct-TerminalThe new Windows Terminal.

    Type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions