Terminal: Feature Request - A real settings menu or form wrapper for profiles.json

Created on 23 Jun 2019  路  6Comments  路  Source: microsoft/terminal

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.

Area-Settings Area-User Interface Issue-Feature Product-Terminal Resolution-Duplicate

Most helpful comment

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.

All 6 comments

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!

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.

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.

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.

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.

1564 & #1567

I split these up to make them more manageable 馃槉

Was this page helpful?
0 / 5 - 0 ratings

Related issues

ghost picture ghost  路  3Comments

wkbrd picture wkbrd  路  3Comments

miniksa picture miniksa  路  3Comments

alabuzhev picture alabuzhev  路  3Comments

waf picture waf  路  3Comments