Skip to content

Epic: Settings UI v2 #10000

Open
Open
@zadjii-msft

Description

@zadjii-msft

The goal of this issue is to track work on the settings UI to achieve (1) parity with the JSON experience and (2) experiences that are generally expected of a standard settings UI. Work items included here are not final, and can be removed/added at any time.

JSON Parity

All of these settings exist in the JSON, but not the SUI. For the most part, these require some kind of design to make it a good experience. A few notes I want to point out...

  • we can iterate on these designs. For example, "launch position" would be cool if we had a control that let you place the window in a specific position, but that's a bit costly to commit to at the moment. We should prioritize having a (good) experience over having "the best" experience.
  • settings that interact with each other can be exposed differently from the JSON.
  • some settings don't make sense to be in the SUI (i.e. unstable or better experience without cluttering SUI). That's fine, let's just have a discussion about it to track it

Startup page

Interaction page

Appearance page

  • experimental.useBackgroundImageForWindow

Appearance > Themes page

  • What do we even want from this page??

Extensions page

  • Make the page at all
  • disable dynamic profiles
  • List fragments, profiles from fragments?

Compatibility page

Profile settings

  • font features
  • font axes
  • padding (support for #,# or #,#,#,#) (PR Add separate padding settings for left, top, right and bottom #17909)
  • adjustIndistinguishableColors
  • experimental.pixelShaderPath
  • bellSound (supports one or multiple sound file paths)
  • experimental.connection.passthroughMode
  • experimental.showMarksInScrollbar
  • experimental.autoMarkPrompts
  • The icon setting should have a cool emoji picker OR file picker OR some preset icons OR whatever, you get it. Dustin has ~ t h o u g h t s ~ on this
  • nullable colors (PR Add nullable colors and improve Profile.Icon in settings UI #17870)
    • selection background (design: nullable color)
    • foreground color (design: nullable color)
    • background color (design: nullable color)
    • tab color (design: nullable color)
    • cursor color (design: nullable color)

Warnings

  • Add warnings to the SUI (PR Add Warnings to Settings UI #17933)
    - [ ] largePasteWarning
    - [ ] multiLinePasteWarning
    - [ ] confirmCloseAllTabs (see also Add the setting "confirmCloseAllTabs" to the UI #14413)
  • idea: add a checkbox to the warnings saying "don't show this again"
    • flow should probably update warning setting and add it to the state to block it from popping up again. Problem is that when we change the settings, it triggers a setting reload which could interrupt flow.

Actions

Profile reordering / Dropdown Menu

Command palette

  • (is this different from the actions page? probably not, yea?)
  • rename a command
  • add an icon to the command
  • nested commands
  • iterable commands

Features

These are SUI features that just make sense to have. They're experiences that are kind of expected in any SUI.

Tasks

  • Remove experimental from...
    • experimental.detectUrls
    • experimental.retroTerminalEffects
    • experimental.pixelShaderPath
    • experimental.showMarksInScrollbar
    • experimental.autoMarkPrompts
  • code health
    • Deduplicate Browse button logic
    • Polish TabBase #8452
    • Remove visibility hacks (i.e. acrylic opacity slider), and use ProfileViewModel instead

Follow-ups from actions page...

  • "the unbound bug"
    • Edit switchToTab to win+shift+q. Save. Edit switchToTab to ctrl+shift+t.
    • "unbound": "win+shift+q" appears but doesn't need to exist.
  • Actions::_GetContainerIndexByKeyChord optimization
    • We're just doing a O(n) search for a matching key chord, but we could technically do this much faster.
    • The list is already sorted by command name, so if we...
      1. use GetActionByKeyChord() to get the Command
      2. perform a binary search on the list using Command::Name() (assuming it has a name)
    • we should be able to accomplish this search in O(log n) time (usually)'
  • Performance
    • Clicking Actions in the left bar of Settings takes about 3 seconds to load and doesn't cache/keep it
  • Keybinding editor could be clearer #11341

Metadata

Metadata

Assignees

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions