Introduces a new TerminalSettingsModel (TSM) project. This project is responsible for (de)serializing and exposing Windows Terminal's settings as WinRT objects. ## References #885: TSM epic #1564: Settings UI is dependent on this for data binding and settings access #6904: TSM Spec In the process of ripping out TSM from TerminalApp, a few other changes were made to make this possible: 1. AppLogic's `ApplicationDisplayName` and `ApplicationVersion` was moved to `CascadiaSettings` - These are defined as static functions. They also no longer check if `AppLogic::Current()` is nullptr. 2. `enum LaunchMode` was moved from TerminalApp to TSM 3. `AzureConnectionType` and `TelnetConnectionType` were moved from the profile generators to their respective TerminalConnections 4. CascadiaSettings' `SettingsPath` and `DefaultSettingsPath` are exposed as `hstring` instead of `std::filesystem::path` 5. `Command::ExpandCommands()` was exposed via the IDL - This required some of the warnings to be saved to an `IVector` instead of `std::vector`, among some other small changes. 6. The localization resources had to be split into two halves. - Resource file linked in init.cpp. Verified at runtime thanks to the StaticResourceLoader. 7. Added constructors to some `ActionArgs` 8. Utils.h/cpp were moved to `cascadia/inc`. `JsonKey()` was moved to `JsonUtils`. Both TermApp and TSM need access to Utils.h/cpp. A large amount of work includes moving to the new namespace (`TerminalApp` --> `Microsoft::Terminal::Settings::Model`). Fixing the tests had its own complications. Testing required us to split up TSM into a DLL and LIB, similar to TermApp. Discussion on creating a non-local test variant can be found in #7743. Closes #885
143 lines
6.6 KiB
JSON
143 lines
6.6 KiB
JSON
// THIS IS AN AUTO-GENERATED FILE! Changes to this file will be ignored.
|
|
{
|
|
"defaultProfile": "{550ce7b8-d500-50ad-8a1a-c400c3262db3}",
|
|
|
|
// Launch Settings
|
|
"initialCols": 120,
|
|
"initialRows": 30,
|
|
"launchMode": "default",
|
|
|
|
// Selection
|
|
"copyOnSelect": false,
|
|
"copyFormatting": false,
|
|
"wordDelimiters": " /\\()\"'-.,:;<>~!@#$%^&*|+=[]{}~?\u2502",
|
|
|
|
// Tab UI
|
|
"alwaysShowTabs": true,
|
|
"showTabsInTitlebar": true,
|
|
"showTerminalTitleInTitlebar": true,
|
|
"tabWidthMode": "equal",
|
|
|
|
// Miscellaneous
|
|
"confirmCloseAllTabs": true,
|
|
"theme": "system",
|
|
"snapToGridOnResize": true,
|
|
|
|
"profiles":
|
|
[
|
|
{
|
|
"guid": "{550ce7b8-d500-50ad-8a1a-c400c3262db3}",
|
|
"name": "Telnet Loopback",
|
|
"commandline": "ms-telnet-loop://127.0.0.1:23",
|
|
"connectionType" : "{311153fb-d3f0-4ac6-b920-038de7cf5289}",
|
|
"hidden": false,
|
|
"startingDirectory": "%USERPROFILE%",
|
|
"closeOnExit": "graceful",
|
|
"colorScheme": "Vintage",
|
|
"cursorColor": "#FFFFFF",
|
|
"cursorShape": "bar",
|
|
"fontFace": "Cascadia Mono",
|
|
"icon": "ms-appx:///ProfileIcons/{550ce7b8-d500-50ad-8a1a-c400c3262db3}.png",
|
|
"padding": "8, 8, 8, 8",
|
|
"snapOnInput": true,
|
|
"altGrAliasing": true,
|
|
"useAcrylic": false,
|
|
"backgroundImage": "ms-appx:///internal-background.png",
|
|
"backgroundImageAlignment": "bottomRight",
|
|
"backgroundImageOpacity": 0.4,
|
|
"backgroundImageStretchMode": "none"
|
|
}
|
|
],
|
|
"schemes":
|
|
[
|
|
{
|
|
"name": "Vintage",
|
|
"foreground": "#C0C0C0",
|
|
"background": "#000000",
|
|
"black": "#000000",
|
|
"red": "#800000",
|
|
"green": "#008000",
|
|
"yellow": "#808000",
|
|
"blue": "#000080",
|
|
"purple": "#800080",
|
|
"cyan": "#008080",
|
|
"white": "#C0C0C0",
|
|
"brightBlack": "#808080",
|
|
"brightRed": "#FF0000",
|
|
"brightGreen": "#00FF00",
|
|
"brightYellow": "#FFFF00",
|
|
"brightBlue": "#0000FF",
|
|
"brightPurple": "#FF00FF",
|
|
"brightCyan": "#00FFFF",
|
|
"brightWhite": "#FFFFFF"
|
|
}
|
|
],
|
|
"actions":
|
|
[
|
|
// Application-level Keys
|
|
{ "command": "closeWindow", "keys": "alt+f4" },
|
|
{ "command": "toggleFullscreen", "keys": "alt+enter" },
|
|
{ "command": "toggleFullscreen", "keys": "f11" },
|
|
{ "command": "openNewTabDropdown", "keys": "ctrl+shift+space" },
|
|
{ "command": "openSettings", "keys": "ctrl+," },
|
|
{ "command": "find", "keys": "ctrl+shift+f" },
|
|
{ "command": "commandPalette", "keys":"ctrl+shift+p" },
|
|
|
|
// Tab Management
|
|
// "command": "closeTab" is unbound by default.
|
|
// The closeTab command closes a tab without confirmation, even if it has multiple panes.
|
|
{ "command": "newTab", "keys": "ctrl+shift+t" },
|
|
{ "command": { "action": "newTab", "index": 0 }, "keys": "ctrl+shift+1" },
|
|
{ "command": { "action": "newTab", "index": 1 }, "keys": "ctrl+shift+2" },
|
|
{ "command": { "action": "newTab", "index": 2 }, "keys": "ctrl+shift+3" },
|
|
{ "command": { "action": "newTab", "index": 3 }, "keys": "ctrl+shift+4" },
|
|
{ "command": { "action": "newTab", "index": 4 }, "keys": "ctrl+shift+5" },
|
|
{ "command": { "action": "newTab", "index": 5 }, "keys": "ctrl+shift+6" },
|
|
{ "command": { "action": "newTab", "index": 6 }, "keys": "ctrl+shift+7" },
|
|
{ "command": { "action": "newTab", "index": 7 }, "keys": "ctrl+shift+8" },
|
|
{ "command": { "action": "newTab", "index": 8 }, "keys": "ctrl+shift+9" },
|
|
{ "command": "duplicateTab", "keys": "ctrl+shift+d" },
|
|
{ "command": "nextTab", "keys": "ctrl+tab" },
|
|
{ "command": "prevTab", "keys": "ctrl+shift+tab" },
|
|
{ "command": { "action": "switchToTab", "index": 0 }, "keys": "ctrl+alt+1" },
|
|
{ "command": { "action": "switchToTab", "index": 1 }, "keys": "ctrl+alt+2" },
|
|
{ "command": { "action": "switchToTab", "index": 2 }, "keys": "ctrl+alt+3" },
|
|
{ "command": { "action": "switchToTab", "index": 3 }, "keys": "ctrl+alt+4" },
|
|
{ "command": { "action": "switchToTab", "index": 4 }, "keys": "ctrl+alt+5" },
|
|
{ "command": { "action": "switchToTab", "index": 5 }, "keys": "ctrl+alt+6" },
|
|
{ "command": { "action": "switchToTab", "index": 6 }, "keys": "ctrl+alt+7" },
|
|
{ "command": { "action": "switchToTab", "index": 7 }, "keys": "ctrl+alt+8" },
|
|
{ "command": { "action": "switchToTab", "index": 8 }, "keys": "ctrl+alt+9" },
|
|
|
|
// Pane Management
|
|
{ "command": "closePane", "keys": "ctrl+shift+w" },
|
|
{ "command": { "action": "splitPane", "split": "horizontal" }, "keys": "alt+shift+-" },
|
|
{ "command": { "action": "splitPane", "split": "vertical" }, "keys": "alt+shift+plus" },
|
|
{ "command": { "action": "resizePane", "direction": "down" }, "keys": "alt+shift+down" },
|
|
{ "command": { "action": "resizePane", "direction": "left" }, "keys": "alt+shift+left" },
|
|
{ "command": { "action": "resizePane", "direction": "right" }, "keys": "alt+shift+right" },
|
|
{ "command": { "action": "resizePane", "direction": "up" }, "keys": "alt+shift+up" },
|
|
{ "command": { "action": "moveFocus", "direction": "down" }, "keys": "alt+down" },
|
|
{ "command": { "action": "moveFocus", "direction": "left" }, "keys": "alt+left" },
|
|
{ "command": { "action": "moveFocus", "direction": "right" }, "keys": "alt+right" },
|
|
{ "command": { "action": "moveFocus", "direction": "up" }, "keys": "alt+up" },
|
|
|
|
// Clipboard Integration
|
|
{ "command": { "action": "copy", "singleLine": false }, "keys": "ctrl+shift+c" },
|
|
{ "command": { "action": "copy", "singleLine": false }, "keys": "ctrl+insert" },
|
|
{ "command": "paste", "keys": "ctrl+shift+v" },
|
|
{ "command": "paste", "keys": "shift+insert" },
|
|
|
|
// Scrollback
|
|
{ "command": "scrollDown", "keys": "ctrl+shift+down" },
|
|
{ "command": "scrollDownPage", "keys": "ctrl+shift+pgdn" },
|
|
{ "command": "scrollUp", "keys": "ctrl+shift+up" },
|
|
{ "command": "scrollUpPage", "keys": "ctrl+shift+pgup" },
|
|
|
|
// Visual Adjustments
|
|
{ "command": { "action": "adjustFontSize", "delta": 1 }, "keys": "ctrl+=" },
|
|
{ "command": { "action": "adjustFontSize", "delta": -1 }, "keys": "ctrl+-" },
|
|
{ "command": "resetFontSize", "keys": "ctrl+0" }
|
|
]
|
|
}
|