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

Feature Request - A real settings menu or form wrapper for profiles.json #1497

Closed
CosmicCatnap opened this issue Jun 23, 2019 · 6 comments
Closed
Labels
Area-Settings Issues related to settings and customizability, for console or terminal Area-User Interface Issues pertaining to the user interface of the Console or Terminal Issue-Feature Complex enough to require an in depth planning process and actual budgeted, scheduled work. Product-Terminal The new Windows Terminal. Resolution-Duplicate There's another issue on the tracker that's pretty much the same thing.

Comments

@CosmicCatnap
Copy link

CosmicCatnap commented Jun 23, 2019

Summary of the new feature/enhancement

If the intention of the Windows Terminal is to conform to modern standards and appease terminal users who are disappointed by the Command Prompt and Powershell offerings it can start by adhering to some basic standards of terminals. With the exception of a few terminals (termite, urxvt, xterm) the overwelming majority of terminals (terminator, gnome terminal, xfce terminal, kde terminal, iTerm2,) and even CMD and Powershell have a menu of some kind that obfuscates the settings file to the user and provides them with an easy to use settings menu or form implementation.

Proposed technical implementation details

When a user clicks the settings button in the Windows Terminal dropdown it should present the user with a settings form similar to how other Terminals, CMD, and Powershell do in that they allow the user to modify the Font, Font Size, Key Bindings, and provides a menu to edit, clone, import, export, create, and delete profiles. It should allow the user to modify most if not all of the values supported by the profiles.json schema.

A secondary issue is the location of the profiles.json file. The profiles.json file is similar to the .Xresources in linux for xterm and urxvt. This is fine if the intention is to provide this to power users who can edit much faster with json than a form for what they want to accomplish but its current location makes that more or less a moot point. To explain the problem better, if I want to edit this file without going to the settings button currently my real path to my profiles.json is

C:\Users\cosmiccatnap\AppData\Local\Packages\Microsoft.WindowsTerminal_8wekyb3d8bbwe\RoamingState\profiles.json

The location of this file should be common and easy to find. It should be in the users directory either under C:\Users\example\profiles.json or in C:\Users\example\Documents\profiles.json. A global default should be installed with the terminal at an also easy to find location in case the user needs to override the file globally or copy it over to rebuild their own local profiles.json such as C:\Program Files\WindowsTerminal\profile.json but if the expectation is that the user will edit this file, it should not be in the AppData location at the least.

@CosmicCatnap CosmicCatnap added the Issue-Feature Complex enough to require an in depth planning process and actual budgeted, scheduled work. label Jun 23, 2019
@ghost ghost added Needs-Triage It's a new issue that the core contributor team needs to triage at the next triage meeting Needs-Tag-Fix Doesn't match tag requirements labels Jun 23, 2019
@peterlukerow
Copy link

I cannot upvote this enough. After reading about this on Scott Hanselman's blog downloaded immediately from the store only to find going to settings fires up VS 2017, urgh!

@JakubBlaha
Copy link

Maybe it would be a good idea to open the json (if it persists, no matter if a "real" settings UI will be added) directly in the terminal. They showed some coding on it in the teaser anyway. There should also be some completion, similar to when you are editing for example Code settings.

@jeffpatton1971
Copy link

Is the settings menu opening for you all? I downloaded this over the weekend and just not got into playing with it, and when I click settings from the "Menu" nothing, and when I hit 'Ctrl + ,' nothing.

@CosmicCatnap
Copy link
Author

Is the settings menu opening for you all? I downloaded this over the weekend and just not got into playing with it, and when I click settings from the "Menu" nothing, and when I hit 'Ctrl + ,' nothing.

It works for me but I had VisualStudio installed so it opens in that. I would make sure that you have a program set to open .json by default but if that doesn't work you can go to C:\Users\cosmiccatnap\AppData\Local\Packages\ and look for your entry marked Microsoft.WindowsTerminal, mine was in Microsoft.WindowsTerminal_8wekyb3d8bbwe\RoamingState\profiles.json

...The fact you have to do all that just to edit the thing is exactly why this issue exists.

@CosmicCatnap
Copy link
Author

CosmicCatnap commented Jun 24, 2019

Maybe it would be a good idea to open the json (if it persists, no matter if a "real" settings UI will be added) directly in the terminal. They showed some coding on it in the teaser anyway. There should also be some completion, similar to when you are editing for example Code settings.

I wouldn't be against this but I still think that if you expect this application to have wide use eventually it has to have a fully featured menu and the sooner we just go ahead and do that the better for everyone and we can still have the profiles.json if granularity is needed. Editing it is ok but on its best day whatever editor solution they implement in the terminal would be a poor mans vim if they really wan't to keep it "lightweight". The thing though is that really the user shouldn't edit the profiles.json from what I understand, its using hard-coded GUID entries for profiles that map to icons which is just a mess to keep up with. It really should be pointing to an enum or something so that the user could just put "iconType: ubuntu" or something...and the default shouldn't be set based on the GUID it should just be a profile name, so that you know if you open ubuntu it will have this icon which matches ubuntu distributions. so I would say until the json is agnostic to these kinds of hard coded IDs I wouldn't want a user editing them and I wouldn't be able to trust importing one unless I knew for sure the GUID values would always be the same or just be obfuscated away from the user entirely.

@cinnamon-msft cinnamon-msft added Area-Settings Issues related to settings and customizability, for console or terminal Area-User Interface Issues pertaining to the user interface of the Console or Terminal Product-Terminal The new Windows Terminal. Resolution-Duplicate There's another issue on the tracker that's pretty much the same thing. and removed Needs-Triage It's a new issue that the core contributor team needs to triage at the next triage meeting labels Jun 24, 2019
@ghost ghost removed the Needs-Tag-Fix Doesn't match tag requirements label Jun 24, 2019
@cinnamon-msft
Copy link
Contributor

cinnamon-msft commented Jun 24, 2019

#1564 & #1567
I split these up to make them more manageable 😊

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 Area-User Interface Issues pertaining to the user interface of the Console or Terminal Issue-Feature Complex enough to require an in depth planning process and actual budgeted, scheduled work. Product-Terminal The new Windows Terminal. Resolution-Duplicate There's another issue on the tracker that's pretty much the same thing.
Projects
None yet
Development

No branches or pull requests

5 participants