We broke some legacy apps that said "black background" but really wanted "default background" #9472

Closed
opened 2026-01-31 01:55:25 +00:00 by claunia · 7 comments
Owner

Originally created by @DHowett on GitHub (Jul 7, 2020).

Just go read #6810 cause that has all the details.

Originally created by @DHowett on GitHub (Jul 7, 2020). Just go read #6810 cause that has all the details.
Author
Owner

@DHowett commented on GitHub (Jul 7, 2020):

Thanks for handling this for me.

@DHowett commented on GitHub (Jul 7, 2020): Thanks for handling this for me.
Author
Owner

@TBBle commented on GitHub (Jul 14, 2021):

🎂

Did the updated PSReadLine make it into Windows Server 2022 Preview? If not, then the support range for keeping the hack becomes 5-10 years (Whatever the LTSC rules are now) from late 2021, and we might want to consider introducing a config option for users who do have a newer PSReadLine deployed.

Otherwise, the support-range would depend on the SAC expiry cycle, once a Windows SAC release gets the update.

I'm assuming the feature-updates didn't get it; my Windows PowerShell reports 'PSReadLine 2.0.0' on Windows 10 20H2, but I might have locally upgraded that to 2.0.0 GA and then forgotten about it.

https://github.com/PowerShell/PSReadLine still says

Windows PowerShell on the latest Windows 10 has version 2.0.0-beta2 of PSReadLine.

which predates the fix landing in 2.1.0-rc1.

@TBBle commented on GitHub (Jul 14, 2021): 🎂 Did the updated PSReadLine make it into Windows Server 2022 Preview? If not, then the support range for keeping the hack becomes 5-10 years (Whatever the LTSC rules are now) from late 2021, and we might want to consider introducing a config option for users who _do_ have a newer PSReadLine deployed. Otherwise, the support-range would depend on the SAC expiry cycle, once a Windows SAC release gets the update. I'm assuming the feature-updates didn't get it; my Windows PowerShell reports 'PSReadLine 2.0.0' on Windows 10 20H2, but I might have locally upgraded that to 2.0.0 GA and then forgotten about it. https://github.com/PowerShell/PSReadLine still says > Windows PowerShell on the latest Windows 10 has version 2.0.0-beta2 of PSReadLine. which predates the fix landing in [2.1.0-rc1](https://github.com/PowerShell/PSReadLine/releases/tag/v2.1.0-rc1).
Author
Owner

@DHowett commented on GitHub (Jul 16, 2021):

That was an excellent question. I did some digging -- they backported this change into the version of PSReadline in the OS (without changing the version number! tsk!) as of Windows builds 20212+ and 20182+. If the Server previews postdate those build numbers, they should not need the workaround and we won't have to support it through LTSC 😄

@DHowett commented on GitHub (Jul 16, 2021): That was an excellent question. I did some digging -- they *backported* this change into the version of PSReadline in the OS (without changing the version number! tsk!) as of Windows builds 20212+ and 20182+. If the Server previews postdate those build numbers, they should not need the workaround and we won't have to support it through LTSC :smile:
Author
Owner

@TBBle commented on GitHub (Jul 16, 2021):

Windows Server 2022 Preview is build 20348, so that's great, and Windows 11 Insider Preview is build 22000, so the only continuing issue is Windows 10 21H2, which was just announced as the third servicing-update release in a row (i.e. build 19044), and which has a 5-year LTSC version scheduled, possibly the last Windows 10 LTSC version.

As a passing thought, what if the hack was modified to only be enabled on Windows builds lower than the version numbers you mentioned? That doesn't seem too intrusive, and provides a nice bit of future-proofing.

I'm now mildly concerned that Windows 10 will never get a new full-system update, which means this bug persists for Windows 10 users until support expiry in October 2025. Would a PR to add a config option (per-profile perhaps, so trivial to apply only to PowerShell Core for example) to override the hack be acceptable? (This is not a commitment to create such a PR, of course, I'm just thinking out loud.)

Huh, and while poking around, I noticed that PowerShell 6.x fell out of support last September, and PowerShell 7.0 expires at the end of 2022, so perhaps the pwsh.exe part of this has a shorter lifetime than the powershell.exe part. Powershell 7.1 included PSReadLine 2.1.0, so new releases won't move these dates.

In the meantime, I'm weighing up whether I just locally work around this by switching from hand-installed PowerShell 7 MSI to using the .NET Global Tool version of PowerShell. I checked, and it looks right, but I'm not sure yet if it actually has any differences I need to care about.

@TBBle commented on GitHub (Jul 16, 2021): Windows Server 2022 Preview is build 20348, so that's great, and Windows 11 Insider Preview is build 22000, so the only continuing issue is Windows 10 21H2, which was [just announced as the third servicing-update release in a row](https://blogs.windows.com/windowsexperience/2021/07/15/introducing-the-next-feature-update-to-windows-10-21h2/) (i.e. build 19044), and which has a 5-year LTSC version scheduled, possibly the last Windows 10 LTSC version. As a passing thought, what if the hack was modified to only be enabled on Windows builds lower than the version numbers you mentioned? That doesn't seem _too_ intrusive, and provides a nice bit of future-proofing. I'm now mildly concerned that Windows 10 will never get a new full-system update, which means this bug persists for Windows 10 users until support expiry in October 2025. Would a PR to add a config option (per-profile perhaps, so trivial to apply only to PowerShell Core for example) to override the hack be acceptable? (This is _not_ a commitment to create such a PR, of course, I'm just thinking out loud.) Huh, and while poking around, I noticed that [PowerShell 6.x fell out of support last September](https://docs.microsoft.com/en-au/lifecycle/products/powershell), and [PowerShell 7.0 expires at the end of 2022](https://docs.microsoft.com/en-au/powershell/scripting/powershell-support-lifecycle?view=powershell-7.1), so perhaps the `pwsh.exe` part of this has a shorter lifetime than the `powershell.exe` part. Powershell 7.1 included PSReadLine 2.1.0, so new releases won't move these dates. In the meantime, I'm weighing up whether I just locally work around this by switching from hand-installed PowerShell 7 MSI to using the .NET Global Tool version of PowerShell. I checked, and it looks right, but I'm not sure yet if it actually has any differences I need to care about.
Author
Owner

@LuanVSO commented on GitHub (Nov 13, 2021):

which is the requirement for reverting the shim again?

@LuanVSO commented on GitHub (Nov 13, 2021): which is the requirement for reverting the shim again?
Author
Owner

@DHowett commented on GitHub (Jun 20, 2022):

Okay, I've cooked this up at 32296ebc4.

My only lingering concern is that pwsh 7.0 is still in support. We can take our medicine and ask people to upgrade, but it may not be pretty.

I would rather not crack the PE file to guess the version number. That seems much worse than living with black bars for all 7.0 consumers who cannot upgrade. Thoughts?

@DHowett commented on GitHub (Jun 20, 2022): Okay, I've cooked this up at 32296ebc4. My only lingering concern is that pwsh 7.0 is still in support. We can take our medicine and ask people to upgrade, but it _may_ not be pretty. I would rather not crack the PE file to guess the version number. That seems much worse than living with black bars for all 7.0 consumers who cannot upgrade. Thoughts?
Author
Owner

@ghost commented on GitHub (Jul 6, 2022):

:tada:This issue was addressed in #13352, which has now been successfully released as Windows Terminal Preview v1.15.186.🎉

Handy links:

@ghost commented on GitHub (Jul 6, 2022): :tada:This issue was addressed in #13352, which has now been successfully released as `Windows Terminal Preview v1.15.186`.:tada: Handy links: * [Release Notes](https://github.com/microsoft/terminal/releases/tag/v1.15.186) * [Store Download](https://www.microsoft.com/store/apps/9n8g5rfz9xk3?cid=storebadge&ocid=badge)
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: starred/terminal#9472