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] [Settings UI] Import a color scheme from a json file #8639

Open
skyline75489 opened this issue Dec 23, 2020 · 12 comments
Open
Labels
Area-Settings UI Anything specific to the SUI Help Wanted We encourage anyone to jump in on these. Issue-Feature Complex enough to require an in depth planning process and actual budgeted, scheduled work. Product-Terminal The new Windows Terminal.
Milestone

Comments

@skyline75489
Copy link
Collaborator

skyline75489 commented Dec 23, 2020

Description of the new feature/enhancement

I was trying the new settings UI and I found that adding a new color scheme is actually harder than using the json editor. When using the json editor I can directly copy the colors. But with settings UI I cannot do that anymore, which frustrates me a bit. I'd like to propose the feature to import a json file as color scheme. This way all those color schemes in https://github.com/mbadolato/iTerm2-Color-Schemes/tree/master/windowsterminal can be used easily.

This is inspired by iTerm2 on macOS.

Proposed technical implementation details (optional)

Ideally it should be just adding a button, parse the json & save.

@skyline75489 skyline75489 added the Issue-Feature Complex enough to require an in depth planning process and actual budgeted, scheduled work. label Dec 23, 2020
@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 Dec 23, 2020
@skyline75489
Copy link
Collaborator Author

skyline75489 commented Dec 23, 2020

I love the settings UI, of course. However, I'm personally comfortable modifying most of the settings using plain old json editors, too. But this one is different. Being able to import a color scheme directly from GUI makes huge different to the entire workflow. I feel that this feature, together with the color scheme preview mentioned in #6800, is really going to help the overall experience with color schemes.

@skyline75489 skyline75489 added the Area-Settings UI Anything specific to the SUI label Dec 23, 2020
@PankajBhojwani
Copy link
Contributor

Once #7632 lands, colour schemes will be import-able from json files!

@PankajBhojwani PankajBhojwani added the Product-Terminal The new Windows Terminal. label Dec 23, 2020
@ghost ghost removed the Needs-Tag-Fix Doesn't match tag requirements label Dec 23, 2020
@zadjii-msft
Copy link
Member

I'm yanking triage off this and sticking it on the backlog. I like this idea a lot - especially if you can import multiple files all at once. The iterm2-color-schemes repo lists all the schemes as individual files. It'd be handy to be able to just download the directory, then import all the files from that folder.

@zadjii-msft zadjii-msft added this to the Terminal Backlog milestone Jan 3, 2021
@zadjii-msft zadjii-msft removed the Needs-Triage It's a new issue that the core contributor team needs to triage at the next triage meeting label Jan 3, 2021
@carlos-zamora
Copy link
Member

Adding design-needed on here. The design shouldn't need a full design doc tbh. I just want to think about the following scenarios and get a quick "I like that" signoff:

Assuming the color schemes page is designed to look something like this (from this comment):
color scheme page redesign

Here's a few ideas:

  1. Split button flyout
    Split button flyout

  2. Split button flyout (minimalist)
    use download button
    use import button

  3. 2 buttons - separate actions
    use download button
    use import button

Let me know which one you like best (or submit your own design).

As for an implementation plan, currently scheduling this work for v1.9. I'm ok with somebody taking this off my hands as long as the design is approved and we have a positive handoff.

@skyline75489
Copy link
Collaborator Author

My vote is goes to option 1, which is the most intuitive one to me. Thanks @carlos-zamora for putting up all the designs 😃

@mdtauk
Copy link

mdtauk commented Apr 16, 2021

The Settings UI is a good place to create your colour schemes - so it would be useful to be able to Export a theme, as well as Import

@skyline75489
Copy link
Collaborator Author

See also #2237 .

@carlos-zamora carlos-zamora added the Help Wanted We encourage anyone to jump in on these. label Jul 12, 2021
@carlos-zamora
Copy link
Member

  1. Split button flyout
    Split button flyout

I'm busy doing other stuff, so I'm marking this as help-wanted and moving it to the v2.0 milestone. If anybody wants to go ahead and take this on, that'd be great! If not here's some notes:

I agree that the attached split-button design looks best, so let's go ahead and do that.

If anybody wants to go ahead and figure out "Export" too, that'd be neat, but not necessary. 😉

Suggested Implementation Details

@j4james
Copy link
Collaborator

j4james commented Jul 12, 2021

  1. Split button flyout
    Split button flyout

Is it really necessary to make users specify the file type up front? Couldn't we just let them pick any file and have the code autodetect the format when it tries to import it.

@carlos-zamora
Copy link
Member

  1. Split button flyout
    Split button flyout

Is it really necessary to make users specify the file type up front? Couldn't we just let them pick any file and have the code autodetect the format when it tries to import it.

oh derp. Yeah, that's better.

In that case, let's go with design 2:

  1. Split button flyout (minimalist)
    use download button
    use import button

I'm realizing now, we could also progressively add more things to the dropdown menu like "duplicate" and anything else we may think of.

@Chaphasilor
Copy link

Couldn't we just let them pick any file and have the code autodetect the format when it tries to import it.

technically that works of course, but in that case it would be good to show supported file types somewhere, otherwise a user could think they might be able to import .ini files or something similar.
in practice, this could be a simple as creating a filtered file picker that only allows certain extensions to be picked.

@zadjii-msft
Copy link
Member

As noted in #17329, we probably want to support actions in a similar way. e.g. support importing YAML from https://www.commands.dev/ as well.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Area-Settings UI Anything specific to the SUI Help Wanted We encourage anyone to jump in on these. Issue-Feature Complex enough to require an in depth planning process and actual budgeted, scheduled work. Product-Terminal The new Windows Terminal.
Projects
None yet
Development

No branches or pull requests

8 participants