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

Add support for roaming settings.json or storing it elsewhere #2933

Open
patriksvensson opened this issue Sep 27, 2019 · 9 comments
Open

Add support for roaming settings.json or storing it elsewhere #2933

patriksvensson opened this issue Sep 27, 2019 · 9 comments

Comments

@patriksvensson
Copy link

@patriksvensson patriksvensson commented Sep 27, 2019

Description of the new feature/enhancement

I have three different computers that I use for work. I keep my PowerShell profile in a GitHub repository and dot source it in my local PowerShell profile. That way I will only need to do a git pull on my profile repository to get all changes propagated on each computer.

It would be great if I could do something similar with my Windows Terminal settings by simply stating in my local settings.json file that the "real" settings could be found somewhere else.

(It could even be that the loaded profile acts like a base for the settings on the computer so things could be overridden, but that is a completely different issue that remains to be opened)

I'm aware that I might have overlooked something here, but would love to start a discussion about this since I suspect that I'm not the only one with this "problem".

Proposed technical implementation details (optional)

{
    "$schema": "https://aka.ms/terminal-profiles-schema",
    "globals": {
        "loadProfileFrom": "C:/Source/git/profiles/terminal_profile.json"
    }
@brandonh-msft

This comment has been minimized.

Copy link

@brandonh-msft brandonh-msft commented Sep 30, 2019

any reason we can't just use the UWP Roaming data store?
https://docs.microsoft.com/en-us/windows/uwp/design/app-settings/store-and-retrieve-app-data#roaming-data

I know this isn't a true UWP app, but Centennials can still use the UWP APIs, right?

@DHowett-MSFT

This comment has been minimized.

Copy link
Member

@DHowett-MSFT DHowett-MSFT commented Sep 30, 2019

We actually used to roam your settings using those exact APIs, but it caused us way more headache than it was worth. There’s a couple things we need to nail before we consider turning roaming back on.

@brandonh-msft

This comment has been minimized.

Copy link

@brandonh-msft brandonh-msft commented Sep 30, 2019

yeah was just coming back to edit.

looks like per here: https://docs.microsoft.com/en-us/windows/apps/desktop/modernize/desktop-to-uwp-enhance
and here: https://docs.microsoft.com/en-us/windows/apps/desktop/modernize/desktop-to-uwp-supported-api

we can't simply use RoamingFolder as I'd hoped? In lieu of this, then, @patriksvensson's approach is probably the best we'll get and users - well I, for one - could simply point at a OneDrive (or similar) location.

@zadjii-msft

This comment has been minimized.

Copy link
Member

@zadjii-msft zadjii-msft commented Sep 30, 2019

I'm more using this issue as a tracker for "add a way to import settings from other paths" than a "re-enable settings roaming". Using RoamingState for storing the settings was a pain. However, I think that we all agree adding support for importing settings from another location is a good idea, but one that needs careful thought and preferably a spec to go with it.

This is even a scenario referenced in the original cascading settings spec, as something we could consider in the future.

#1770 was the original bug tracking disabling roaming settings. Note the pile of other issues that were dupe'd to it.

@patriksvensson

This comment has been minimized.

Copy link
Author

@patriksvensson patriksvensson commented Sep 30, 2019

@zadjii-msft What's the process for creating a spec for something? Do you have an RFC-process or similar?

@zadjii-msft

This comment has been minimized.

Copy link
Member

@zadjii-msft zadjii-msft commented Sep 30, 2019

@patriksvensson We don't have an official "RFC" process, but we do have a semi-formal spec review process. This helps us ensure the entire team is on-board with more complicated features, and for scenarios like this one, some of the more complicated edge cases have been thought out. I'd refer to the following:

@zadjii-msft zadjii-msft added this to Spec Needed ❓ in Specification Tracker via automation Sep 30, 2019
@zadjii-msft zadjii-msft added this to the Terminal Backlog milestone Sep 30, 2019
@patriksvensson

This comment has been minimized.

Copy link
Author

@patriksvensson patriksvensson commented Sep 30, 2019

@zadjii-msft Would it help if I (or someone else) drafted up a spec to get the ball rolling?

@zadjii-msft

This comment has been minimized.

Copy link
Member

@zadjii-msft zadjii-msft commented Sep 30, 2019

I think that would be very helpful :)

@jpetkau

This comment has been minimized.

Copy link

@jpetkau jpetkau commented Nov 11, 2019

As a workaround for this, it's possible to make profiles.json a symlink to a shared settings file in Roaming or OneDrive or Dropbox or whatever.

This mostly works, except terminal doesn't notice changes to the actual file. It only watches the symlink. So hot-reloading of changes doesn't work.

Of course roaming just magically working would be better.

@DHowett-MSFT DHowett-MSFT changed the title Add support for roaming settings.json Add support for roaming settings.json or storing it elsewhere Dec 9, 2019
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
Specification Tracker
  
Spec Needed ❓
6 participants
You can’t perform that action at this time.