Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Stop roaming settings for now #1770

Closed
DHowett-MSFT opened this issue Jul 2, 2019 · 7 comments · Fixed by #2298
Closed

Stop roaming settings for now #1770

DHowett-MSFT opened this issue Jul 2, 2019 · 7 comments · Fixed by #2298
Assignees
Labels
Area-Settings Issues related to settings and customizability, for console or terminal Issue-Task It's a feature request, but it doesn't really need a major design. Product-Terminal The new Windows Terminal. Resolution-Fix-Committed Fix is checked in, but it might be 3-4 weeks until a release.

Comments

@DHowett-MSFT
Copy link
Contributor

DHowett-MSFT commented Jul 2, 2019

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:

@DHowett-MSFT DHowett-MSFT added Area-Settings Issues related to settings and customizability, for console or terminal Product-Terminal The new Windows Terminal. Issue-Task It's a feature request, but it doesn't really need a major design. labels Jul 2, 2019
@DHowett-MSFT DHowett-MSFT added this to the Terminal v0.3 - Preview 2 milestone Jul 2, 2019
@ghost ghost added the Needs-Triage It's a new issue that the core contributor team needs to triage at the next triage meeting label Jul 2, 2019
@DHowett-MSFT DHowett-MSFT removed the Needs-Triage It's a new issue that the core contributor team needs to triage at the next triage meeting label Jul 2, 2019
@angelog0
Copy link

angelog0 commented 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.

@clairernovotny
Copy link
Member

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

@sba923
Copy link

sba923 commented 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.

zadjii-msft added a commit that referenced this issue Aug 6, 2019
  Also migrate existing settings from RoamingState to LocalState.

  Fixes #1770.
@zadjii-msft zadjii-msft mentioned this issue Aug 6, 2019
4 tasks
@ghost ghost added the In-PR This issue has a related PR label Aug 6, 2019
@ghost ghost added Needs-Tag-Fix Doesn't match tag requirements Resolution-Fix-Committed Fix is checked in, but it might be 3-4 weeks until a release. and removed In-PR This issue has a related PR labels Aug 8, 2019
zadjii-msft added a commit that referenced this issue Aug 8, 2019
* Stop Roaming settings

  Also migrate existing settings from RoamingState to LocalState.

  Fixes #1770.

* * de-dupe these functions
* const a pair of things

* This should be in the previous commit

* use `unique_hfile`'s

* Make some of these wil things cleaner
@ghost
Copy link

ghost commented Aug 27, 2019

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

Handy links:

@wenmin92
Copy link

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

@DHowett-MSFT
Copy link
Contributor Author

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.

@wenmin92
Copy link

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 up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Area-Settings Issues related to settings and customizability, for console or terminal Issue-Task It's a feature request, but it doesn't really need a major design. Product-Terminal The new Windows Terminal. Resolution-Fix-Committed Fix is checked in, but it might be 3-4 weeks until a release.
Projects
None yet
Development

Successfully merging a pull request may close this issue.

6 participants