Stop roaming settings for now #2478

Closed
opened 2026-01-30 22:56:02 +00:00 by claunia · 7 comments
Owner

Originally created by @DHowett-MSFT on GitHub (Jul 2, 2019).

Originally assigned to: @zadjii-msft on GitHub.

Until we come up with a good story for settings overrides and default profiles on different machines, we're going to want to move the settings from RoamingState to LocalState. Since right now a user's settings include everything we know about them for a specific machine, we're not capable of safely roaming them.

Roaming machine-specific settings causes (but is not limited to causing) the following issues:

  • instant exit on launch because default shell has gone away
  • new install's settings stomping other machines
  • spurious changes at runtime resulting in syncs from other machines, changing settings unexpectedly

We should make the move to localstate sooner rather than later, since we only just released v0.2. This is still going to be a minor breaking change, but we should include some migration logic.

That migration logic should use a file move (instead of a read-parse-write cycle), as some folks are using symbolic links to manage their settings.

Refer:

Originally created by @DHowett-MSFT on GitHub (Jul 2, 2019). Originally assigned to: @zadjii-msft on GitHub. Until we come up with a good story for settings overrides and default profiles on different machines, we're going to want to move the settings from `RoamingState` to `LocalState`. Since right now a user's settings include everything we know about them _for a specific machine_, we're not capable of safely roaming them. Roaming machine-specific settings causes (but is not limited to causing) the following issues: * instant exit on launch because default shell has gone away * new install's settings stomping other machines * spurious changes at runtime resulting in syncs from other machines, changing settings unexpectedly We should make the move to localstate sooner rather than later, since we only just released v0.2. This is still going to be a minor breaking change, but we should include some migration logic. That migration logic **should** use a file move (instead of a read-parse-write cycle), as some folks are using symbolic links to manage their settings. Refer: * #1567 * #1455 * #1399 * #1654
claunia added the Resolution-Fix-CommittedArea-SettingsIssue-TaskProduct-Terminal labels 2026-01-30 22:56:02 +00:00
Author
Owner

@angelog0 commented on GitHub (Jul 2, 2019):

Usually, on GNU/Linux, the settings go in $HOME/.appsrc folder. On Windows, this should be something like %USERPROFILE%\appssettings, even if almost all apps use %APPDATA% (...\AppData\Roaming).

For a while, I have put all physical files for Windows Terminal settings in [MSYS2}/home/user/.ms-terminal and in [WT]/RoamingState their symlinks. All this worked for a few days, than WT started to fail when it was the first app launched after the Windows login, I had to start something else, first...

I don't know your technical reasons, but for the POV of the user, %USERPROFILE%\appssettings would be fine.

Thanks.

@angelog0 commented on GitHub (Jul 2, 2019): Usually, on GNU/Linux, the settings go in `$HOME/.appsrc` folder. On Windows, this should be something like `%USERPROFILE%\appssettings`, even if almost all apps use `%APPDATA%` (.`..\AppData\Roaming`). For a while, I have put all physical files for Windows Terminal settings in `[MSYS2}/home/user/.ms-terminal` and in `[WT]/RoamingState` their symlinks. All this worked for a few days, than WT started to fail when it was the first app launched after the Windows login, I had to start something else, first... I don't know your technical reasons, but for the POV of the user, `%USERPROFILE%\appssettings` would be fine. Thanks.
Author
Owner

@clairernovotny commented on GitHub (Aug 3, 2019):

This is biting me already where I have different startingDirectory settings per machine. The roaming is causing one machine to always be wrong.

@clairernovotny commented on GitHub (Aug 3, 2019): This is biting me already where I have different `startingDirectory` settings per machine. The roaming is causing one machine to always be wrong.
Author
Owner

@sba923 commented on GitHub (Aug 4, 2019):

Just my €0.02: IMVHO this has higher priority than #1258 (cascading settings Defaults -> User). Of course, the full settings experience needs both.

@sba923 commented on GitHub (Aug 4, 2019): Just my €0.02: IMVHO this has higher priority than #1258 (cascading settings Defaults -> User). Of course, the full settings experience needs both.
Author
Owner

@ghost commented on GitHub (Aug 27, 2019):

:tada:This issue was addressed in #2298, which has now been successfully released as Windows Terminal Preview v0.4.2382.0.🎉

Handy links:

@ghost commented on GitHub (Aug 27, 2019): :tada:This issue was addressed in #2298, which has now been successfully released as `Windows Terminal Preview v0.4.2382.0`.:tada: Handy links: * [Release Notes](https://github.com/microsoft/terminal/releases/tag/v0.4.2382.0) * [Store Download](https://www.microsoft.com/store/apps/9n0dx20hk701?cid=storebadge&ocid=badge)
Author
Owner

@wenmin92 commented on GitHub (Aug 28, 2019):

With the new preview version v0.4, settings sync has stopped, how should I sync my settings?

I use a symbolic link which link profiles.json in Dropbox, but modifications to this file are not effective immediately, I need to restart Windows Terminal to take the effect.

Where am I wrong? THX

@wenmin92 commented on GitHub (Aug 28, 2019): With the new preview version v0.4, settings sync has stopped, how should I sync my settings? I use a symbolic link which link profiles.json in Dropbox, but modifications to this file are not effective immediately, I need to restart Windows Terminal to take the effect. Where am I wrong? THX
Author
Owner

@DHowett-MSFT commented on GitHub (Aug 28, 2019):

Settings sync was probably never working for you because of that symbolic link. For now, you're going to have to keep relaunching Windows Terminal whenever the settings in Dropbox change, because we cannot detect when that file changes without reading your entire dropbox directory. That's a lot more work than anybody wants Terminal to do.

@DHowett-MSFT commented on GitHub (Aug 28, 2019): Settings sync was probably never working for you because of that symbolic link. For now, you're going to have to keep relaunching Windows Terminal whenever the settings in Dropbox change, because we _cannot_ detect when that file changes without reading your entire dropbox directory. That's a lot more work than anybody wants Terminal to do.
Author
Owner

@wenmin92 commented on GitHub (Aug 28, 2019):

Thanks for your reply.
I like sync very much, as you said, maybe the symbolic is not a perfect solution. I think there could be a setting in the profile can control the sync behavior, use the old style or not. Or some other methods that support sync. If all these are too much trouble, the current approach is acceptable.

@wenmin92 commented on GitHub (Aug 28, 2019): Thanks for your reply. I like sync very much, as you said, maybe the symbolic is not a perfect solution. I think there could be a setting in the profile can control the sync behavior, use the old style or not. Or some other methods that support sync. If all these are too much trouble, the current approach is acceptable.
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: starred/terminal#2478