microsoft/Terminal

Feature request: create new profile from .lnk file

Open

#1793 aperta il 3 lug 2019

Vedi su GitHub
 (3 commenti) (2 reazioni) (0 assegnatari)C++ (3212 fork)batch import
Area-SettingsHelp WantedIssue-FeatureProduct-Terminal

Metriche repository

Star
 (35.764 star)
Metriche merge PR
 (Merge medio 27g 19h) (24 PR mergiate in 30 g)

Descrizione

Summary of the new feature/enhancement

Development environments, such as Visual Studio, SDKs, etc. install shortcuts that open command prompts with a pre-configured environment (e.g. "x64 Native Tools Command Prompt for VS 2019"). It's tedious and error prone to copy settings from these shortcuts. Terminal should do it automatically, either on a shortcut-by-shortcut basis, or even better letting you dynamically import a whole directory of shortcuts

Proposed technical implementation details

Until Terminal has a UI for creating and editing profiles, this feature will simply involve changes to the schema of profiles.json

I propose a new key for profile dictionaries, let's call it "importDefaultsFromLnk", which can specify a path to a shell link (.lnk) file. A profile can contain a single importDefaultsFromLnk field and nothing else, and all settings will come from the shell link and its NT_CONSOLE_PROPS and NT_FE_CONSOLE_PROPS data blocks (except those that don't make sense for Terminal, of course, like NT_CONSOLE_PROPS::dwWindowOrigin); the name field would default to the file's display name (IShellItem::GetDisplayName), so that it would automatically hide the extension and/or load a localized description that might be present. If other profile fields are explicitly specified, they'll override settings from the shell link. A null value for a field could be used to mean "override with the Terminal default"

Importing a set of shortcuts from a directory (e.g. all shortcuts in Programs folder "Visual Studio 2019\Visual Studio Tools\VC", or even better all shortcuts under "Visual Studio 2019\Visual Studio Tools", recursively) could be done naively, with a profile field that we might call "importProfilesFromDirectory", but unlike importing a single shortcut this feature has non-trivial implications, including but not limited to:

  • should profiles imported from a directory be grouped in a sub-menu of the "new tab" menu?
  • what about recursively imported profiles? should there be sub-sub-menus?
  • how do we specify a dynamically imported profile in globals\defaultProfile?

Guida contributor