64489b1ec1
This pull request migrates `profiles.json` to `settings.json` and removes the legacy roaming AppData settings migrator. It also: * separates the key bindings in defaults.json into logical groups * syncs the universal terminal defaults with the primary defaults * removes some stray newlines that ended up at the beginning of settings.json and defaults.json Fixes #5186. Fixes #3291. ### categorize key bindings ### sync universal with main ### kill stray newlines in template files ### move profiles.json to settings.json This commit also changes Get*Settings from returning a string to returning a std::filesystem::path. We gain in expressiveness without a loss in clarity (since path still supports .c_str()). NOTE: I tried to do an atomic rename with the handle open, but it didn't work for reparse points (it moves the destination of a symbolic link out into the settings folder directly.) (snip for atomic rename code) ```c++ auto path{ pathToSettingsFile.wstring() }; auto renameBufferSize{ sizeof(FILE_RENAME_INFO) + (path.size() * sizeof(wchar_t)) }; auto renameBuffer{ std::make_unique<std::byte[]>(renameBufferSize) }; auto renameInfo{ reinterpret_cast<FILE_RENAME_INFO*>(renameBuffer.get()) }; renameInfo->Flags = FILE_RENAME_FLAG_REPLACE_IF_EXISTS | FILE_RENAME_FLAG_POSIX_SEMANTICS; renameInfo->RootDirectory = nullptr; renameInfo->FileNameLength = gsl::narrow_cast<DWORD>(path.size()); std::copy(path.cbegin(), path.cend(), std::begin(renameInfo->FileName)); THROW_IF_WIN32_BOOL_FALSE(SetFileInformationByHandle(hLegacyFile.get(), FileRenameInfo, renameBuffer.get(), gsl::narrow_cast<DWORD>(renameBufferSize))); ``` (end snip) ### Stop resurrecting dead roaming profiles
125 lines
6.1 KiB
JSON
125 lines
6.1 KiB
JSON
// THIS IS AN AUTO-GENERATED FILE! Changes to this file will be ignored.
|
|
{
|
|
"alwaysShowTabs": true,
|
|
"defaultProfile": "{550ce7b8-d500-50ad-8a1a-c400c3262db3}",
|
|
"initialCols": 120,
|
|
"initialRows": 30,
|
|
"requestedTheme": "system",
|
|
"showTabsInTitlebar": false,
|
|
"showTerminalTitleInTitlebar": true,
|
|
"wordDelimiters": " /\\()\"'-.,:;<>~!@#$%^&*|+=[]{}~?\u2502",
|
|
|
|
"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 Code",
|
|
"icon": "ms-appx:///ProfileIcons/{550ce7b8-d500-50ad-8a1a-c400c3262db3}.png",
|
|
"padding": "8, 8, 8, 8",
|
|
"snapOnInput": 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"
|
|
}
|
|
],
|
|
"keybindings":
|
|
[
|
|
// 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" },
|
|
|
|
// Tab Management
|
|
{ "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" },
|
|
|
|
// OS Integration
|
|
{ "command": "copy", "keys": "ctrl+shift+c" },
|
|
{ "command": "copy", "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" }
|
|
]
|
|
}
|