Legacy mode + shortcut propsheet may reset Default Terminal setting #21514

Open
opened 2026-01-31 07:46:50 +00:00 by claunia · 5 comments
Owner

Originally created by @DHowett on GitHub (Apr 12, 2024).

While messing around on Windows 10 I came across an 'automatic' reset of the Let Windows Decide setting. I don't know if this relates to what triggered the initial report. Tested on Win10 21H2 and 22H2 (the latter with or without Windows Terminal installed). Don't have a Win11 system to test on. I have a console-using application with a Desktop shortcut. Right clicking the shortcut and selecting Properties shows a Properties dialog with all of the Console specific tabs. The Options tab has the option 'Use legacy console'. To reproduce:

1 - open Settings/developers and set default terminal option to Windows Console Host.
2 - close the settings window (reopening and checking verifies it has stayed 'set')
3 - Access the Properties menu by right clicking on the shortcut
4 - Navigate to Options, and toggle (either select or deselect) the use Legacy console option.
5 - close the Properties dialog.
6 - reopen developer Settings. Note that terminal option has been reset to Let Windows Decide.

Repeated this on systems with and without Windows Terminal installed. On windows 10 it seems 'let windows decide' still reverts to conhost.exe. If this also happens on win11, I believe it's expected to chose Windows Terminal. So it seems this could cause users to have their expected terminal switched unknowingly. Note that if I go to the properties menu within the open application to set the Legacy property, this change does not happen. I don't know what's different about accessing the properties from a shortcut vs from within an open application.

Originally posted by @NRJank in https://github.com/microsoft/terminal/issues/15654#issuecomment-2051995221

Originally created by @DHowett on GitHub (Apr 12, 2024). While messing around on Windows 10 I came across an 'automatic' reset of the Let Windows Decide setting. I don't know if this relates to what triggered the initial report. Tested on Win10 21H2 and 22H2 (the latter with or without Windows Terminal installed). Don't have a Win11 system to test on. I have a console-using application with a Desktop shortcut. Right clicking the shortcut and selecting Properties shows a Properties dialog with all of the Console specific tabs. The Options tab has the option 'Use legacy console'. To reproduce: 1 - open Settings/developers and set default terminal option to Windows Console Host. 2 - close the settings window (reopening and checking verifies it has stayed 'set') 3 - Access the Properties menu _by right clicking on the shortcut_ 4 - Navigate to Options, and toggle (either select or deselect) the use Legacy console option. 5 - close the Properties dialog. 6 - reopen developer Settings. Note that terminal option has been reset to Let Windows Decide. Repeated this on systems with and without Windows Terminal installed. On windows 10 it seems 'let windows decide' still reverts to conhost.exe. If this also happens on win11, I believe it's expected to chose Windows Terminal. So it seems this could cause users to have their expected terminal switched unknowingly. Note that if I go to the properties menu within the open application to set the Legacy property, this change does not happen. I don't know what's different about accessing the properties from a shortcut vs from within an open application. _Originally posted by @NRJank in https://github.com/microsoft/terminal/issues/15654#issuecomment-2051995221_
claunia added the Product-ConhostIssue-BugzInbox-BugArea-DefApp labels 2026-01-31 07:46:51 +00:00
Author
Owner

@DHowett commented on GitHub (Apr 12, 2024):

@nrjank thanks so much for writing this up! I promoted it to a separate bug. The interaction between our new settings, legacy mode, and shortcuts is a place that deserves to be better-explored

@DHowett commented on GitHub (Apr 12, 2024): @nrjank thanks so much for writing this up! I promoted it to a separate bug. The interaction between our new settings, legacy mode, _and_ shortcuts is a place that deserves to be better-explored
Author
Owner

@zadjii-msft commented on GitHub (Apr 16, 2024):

This isn't the culprit, defterm settings aren't saved there:
5f3a857192/src/propsheet/registry.cpp (L949-L954)

Here we get them into the propsheet
5f3a857192/src/propsheet/console.cpp (L618-L622)

and here we set it:
5f3a857192/src/propsheet/console.cpp (L99)

@zadjii-msft commented on GitHub (Apr 16, 2024): This isn't the culprit, defterm settings aren't saved there: https://github.com/microsoft/terminal/blob/5f3a857192b2fa6f4e5ae87eb3ee59a1571515a2/src/propsheet/registry.cpp#L949-L954 Here we get them into the propsheet https://github.com/microsoft/terminal/blob/5f3a857192b2fa6f4e5ae87eb3ee59a1571515a2/src/propsheet/console.cpp#L618-L622 and here we set it: https://github.com/microsoft/terminal/blob/5f3a857192b2fa6f4e5ae87eb3ee59a1571515a2/src/propsheet/console.cpp#L99
Author
Owner

@lhecker commented on GitHub (Jul 31, 2024):

This may be related to how I changed the meaning of the all-zero GUID from "Windows Console Host" to "Let Windows decide".

@lhecker commented on GitHub (Jul 31, 2024): This may be related to how I changed the meaning of the all-zero GUID from "Windows Console Host" to "Let Windows decide".
Author
Owner

@LesFerch commented on GitHub (Jan 21, 2025):

Has there been any progress on this issue? I still see it Windows 11 26100.2894.

@LesFerch commented on GitHub (Jan 21, 2025): Has there been any progress on this issue? I still see it Windows 11 26100.2894.
Author
Owner

@NRJank commented on GitHub (Feb 8, 2025):

This may be related to how I changed the meaning of the all-zero GUID from "Windows Console Host" to "Let Windows decide".

Ahhh, that explains it. we used to check the all zeros to be ensure Windows Terminal wasn't being used (since we still rely on things that worked in console but not windows terminal) and weren't sure when/why the reg key were were looking for changed behavior.

@NRJank commented on GitHub (Feb 8, 2025): > This may be related to how I changed the meaning of the all-zero GUID from "Windows Console Host" to "Let Windows decide". Ahhh, that explains it. we used to check the all zeros to be ensure Windows Terminal wasn't being used ([since we still rely on ](https://github.com/microsoft/terminal/issues/17054) [things that worked in console but not windows terminal](https://github.com/microsoft/terminal/issues/15654#issuecomment-1623007704)) and weren't sure when/why the reg key were were looking for changed behavior.
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: starred/terminal#21514