Skip to content

Epic: Introduce Actions page to the Settings UI #6900

@zadjii-msft

Description

@zadjii-msft

written and maintained by @carlos-zamora

Description

A largely missing part of the Settings UI is actions. This will allow the user to customize their command palette and key bindings without the need to go into the JSON.

Much like the implementation plan for the Settings UI, there are many moving pieces to this that are outside of the TerminalSettingsEditor project:

Some follow-up work items:

  • Key chord editor/listener
    • Instead of parsing key chord text, it'd be nice if we could listen for key chords.
    • Inspiration: We should take a look at how PowerToys got around this problem.
    • Inspiration: An old version of SUI also had this implemented (back during the hackathon).
    • PR Add a KeyChordListener to the Settings UI #10652
  • "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

Bugs:

References

#7175 should be kept in mind during this design.

Metadata

Metadata

Assignees

Type

No type

Projects

No projects

Relationships

None yet

Development

No branches or pull requests

Issue actions