Skip to content

Feature Request - Implement Settings UI #1564

Closed

Description

Summary of the new feature/enhancement

Implement a Settings UI for Windows Terminal. This UI should read from and update the settings.json file. The user should still be able to edit the JSON directly, if so desired.

Spec & Design: #6720

Implementation Plan

By Carlos Zamora (@carlos-zamora). We're working off of the feature/settings-ui branch. It runs the same CI as master. The idea is that you make PRs targeting feature/settings-ui and when the Settings UI is ready for delivery, we merge it into master.

We're basically starting with #7370.

Back-end

These work items generally won't touch any UI or XAML.

Middle-end

These work items may touch a bit of the XAML. You'll have to touch the TerminalSettingsEditor project, but you won't be too caught up in the polish of icons, margins, etc.

  • Embed the Settings UI as a tab in Windows Terminal (TerminalApp)
  • Replace ObjectModel objects in the prototype with real TerminalSettingsModel object references
  • Data Bind the settings to the TerminalSettingsModel
    • Global Settings
    • Profiles:
      • List of profiles --> Navigation bar
      • Profile settings
    • Color Schemes:
      • List of color schemes --> dropdown menu
      • colors
    • Key Bindings

Miscellaneous Follow-Ups from PRs

Front-end

These work items include a bit more design work. Make sure you look at the mockups in #6720.

Bonus Points

  • Search for settings
  • Home Page
  • Image preview for icons and background image
  • Embed a Terminal Control in the "Appearance" page for profiles
    • This should live update with changes you make to colors, background image, font, etc.
    • Requires a new Terminal Connection specifically designed for this (or even throw a fully operational terminal in there, sure!)
  • Tab title changes depending on what SUI page is currently open.
  • Implement the Keyboard page (key bindings)

Bugs

These are bugs that the team is finding as we selfhost the feature branch. This method will be used until the feature branch gets merged into master. At that point, we'll submit bugs normally.

Designs

By Kayla Cinnamon (@cinnamon-msft). Content within these designs is not final and will be modified. They're simply here for demonstration.

navigation-2

appearance

Activity

  1. ghost added
    Needs-TriageIt's a new issue that the core contributor team needs to triage at the next triage meeting
    on Jun 24, 2019
  2. ghost added
    Needs-Tag-FixDoesn't match tag requirements
    on Jun 24, 2019
  3. added
    Area-SettingsIssues related to settings and customizability, for console or terminal
    Area-UserInterfaceIssues pertaining to the user interface of the Console or Terminal
    and removed
    Needs-TriageIt's a new issue that the core contributor team needs to triage at the next triage meeting
    on Jun 24, 2019
  4. ghost removed
    Needs-Tag-FixDoesn't match tag requirements
    on Jun 24, 2019
  5. DHowett-MSFT commented on Jun 25, 2019

    @DHowett-MSFT
    Contributor

    Before anyone asks, yes the plan includes having a good live preview of things that could reasonably be expected to be seen in a terminal.

  6. mdtauk commented on Jun 25, 2019

    @mdtauk

    How would you move between different profile's settings?

    Perhaps you could implement a ComboBox in the left NavigationPane to choose a Profile, to which the settings would apply?

    image
    Your Phone does this

    image


    Even if you decide not to use Acrylic for the Settings' NavigaitonView Pane, could you please Extend the Title Bar so the navigation view touches the top of the window?

    image

    image

    image

  7. cinnamon-msft commented on Jun 25, 2019

    @cinnamon-msft
    ContributorAuthor

    The plan at the moment is to have a profiles item in the menu on the left and a drop down of all your profiles in the main content area, with fields populated according to the JSON properties and a preview window to show your updated settings.
    We don't have mocks of this just yet 😊

  8. mikemaccana commented on Jul 2, 2019

    @mikemaccana
    Contributor
  9. DavidLiedle commented on Jul 7, 2019

    @DavidLiedle

    To be clear, there is currently (Sunday, July 7, 2019) no Settings functionality at all, correct? Clicking the "Settings" menu item from the triangle drop-down has no effect on my system.

  10. mdtauk commented on Jul 7, 2019

    @mdtauk

    To be clear, there is currently (Sunday, July 7, 2019) no Settings functionality at all, correct? Clicking the "Settings" menu item from the triangle drop-down has no effect on my system.

    It should open the profiles.json file, which allows you to change the settings - but eventually there will be a GUI for this file.

  11. 156 remaining items

  12. added a commit that references this issue on Nov 24, 2023
  13. added a commit that references this issue on Jan 30, 2024
  14. added a commit that references this issue on Apr 14, 2024
  15. added a commit that references this issue on Jun 17, 2024
  16. added a commit that references this issue on Jul 8, 2024
  17. added a commit that references this issue on Nov 4, 2025
  18. added a commit that references this issue on Jan 31, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Labels

Area-SettingsIssues related to settings and customizability, for console or terminalArea-UserInterfaceIssues pertaining to the user interface of the Console or TerminalIssue-ScenarioNeeds-Tag-FixDoesn't match tag requirementsProduct-TerminalThe new Windows Terminal.Resolution-Fix-CommittedFix is checked in, but it might be 3-4 weeks until a release.

Type

No type

Projects

No projects

    Milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions