当前位置: 首页 > news >正文

为Windows Terminal设置背景图片

直接通过界面上选项无法达到修改背景图片的目的,后再在官网,和git上找到通过修改配置文件来更改背景图片

首先打开设置界面

 

点击左下角打开settings.json文件

 

在json中profiles关键字default选项相面增加几个key,就像下面

  • 修改前
  • 修改后

 

 

修改后的terminal背景

 

虽然更改了背景,但是背景太亮了,导致文字看不清楚

可以根据最后面的json描述文件文件增加一些选项,修改一下backgroundImageOpacity,透明度

增加选项

  • 结果

下面的json选项太多又臭又长

{"$id": "https://github.com/microsoft/terminal/blob/main/doc/cascadia/profiles.schema.json","$schema": "https://json-schema.org/draft/2020-12/schema","title": "Microsoft's Windows Terminal Settings Profile Schema","$defs": {"KeyChordSegment": {"pattern": "^(?:(?:ctrl|alt|shift|win)\\+)*(?:app|backspace|browser_(?:back|forward|refresh|stop|search|favorites|home)|comma|delete|down|end|enter|esc|escape|home|insert|left|menu|minus|pagedown|pageup|period|pgdn|pgup|plus|right|space|tab|up|f(?:1\\d?|2[0-4]?|[3-9])|numpad\\d|numpad_(?:\\d|add|decimal|divide|minus|multiply|period|plus|subtract)|(?:vk|sc)\\((?:[1-9]|1?\\d{2}|2[0-4]\\d|25[0-5])\\)|[^\\s+])(?:\\+(?:ctrl|alt|shift|win))*$","type": "string","description": "The string should fit the format \"[ctrl+][alt+][shift+][win+]<KeyName>\", where each modifier is optional. KeyName is either any single key character, an explicit virtual key or scan code in the form vk(nnn) and sc(nnn) respectively, or one of the special names listed at https://docs.microsoft.com/en-us/windows/terminal/customize-settings/actions#accepted-modifiers-and-keys"},"Color": {"default": "#","pattern": "^#[A-Fa-f0-9]{3}(?:[A-Fa-f0-9]{3})?$","type": "string","format": "color"},"ColorOrIndex": {"default": "#","pattern": "^(?:#[A-Fa-f0-9]{3}(?:[A-Fa-f0-9]{3})?|i[A-Fa-f0-9]{2})$","type": "string","format": "color"},"Coordinates": {"pattern": "^(-?\\d+)?(,\\s?(-?\\d+)?)?$","type": "string"},"CSSLengthPercentage": {"pattern": "^[+-]?\\d+(?:\\.\\d+)?(?:%|ch|pt|px)?$","type": ["string","null"]},"DynamicProfileSource": {"enum": ["Windows.Terminal.Wsl","Windows.Terminal.Azure","Windows.Terminal.PowershellCore"],"type": "string"},"BellStyle": {"oneOf": [{"type": "boolean"},{"type": "array","items": {"type": "string","enum": ["audible","window","taskbar"]}},{"type": "string","enum": ["audible","taskbar","window","all","none"]}]},"BellSound": {"default": "","description": "Sets the file location of the sound played when the application emits a BEL character. If the path is invalid no sound will be played. This property also accepts an array of sounds and the terminal will pick one at random.","oneOf": [{"type": ["string","null"]},{"type": "array","items": {"type": "string"}}]},"AppearanceConfig": {"properties": {"colorScheme": {"description": "The name of a color scheme to use when unfocused.","oneOf": [{"$ref": "#/$defs/SchemePair"},{"type": "string"}]},"foreground": {"$ref": "#/$defs/Color","default": "#cccccc","description": "Sets the text color when unfocused. Overrides \"foreground\" from the color scheme. Uses hex color format: \"#rrggbb\".","type": ["string","null"]},"background": {"$ref": "#/$defs/Color","default": "#0c0c0c","description": "Sets the background color of the text when unfocused. Overrides \"background\" from the color scheme. Uses hex color format: \"#rrggbb\".","type": ["string","null"]},"selectionBackground": {"oneOf": [{"$ref": "#/$defs/Color"},{"type": "null"}],"description": "Sets the background color of selected text when unfocused. Overrides selectionBackground set in the color scheme. Uses hex color format: \"#rrggbb\"."},"cursorColor": {"oneOf": [{"$ref": "#/$defs/Color"},{"type": "null"}],"description": "Sets the color of the cursor when unfocused. Overrides the cursor color from the color scheme. Uses hex color format: \"#rrggbb\"."},"cursorShape": {"default": "bar","description": "Sets the shape of the cursor when unfocused. Possible values:\n -\"bar\" ( ┃, default )\n -\"doubleUnderscore\" ( ‗ )\n -\"emptyBox\" ( ▯ )\n -\"filledBox\" ( █ )\n -\"underscore\" ( ▁ )\n -\"vintage\" ( ▃ )","enum": ["bar","doubleUnderscore","emptyBox","filledBox","underscore","vintage"],"type": "string"},"cursorHeight": {"description": "Sets the percentage height of the cursor (when unfocused) starting from the bottom. Only works when cursorShape is set to \"vintage\". Accepts values from 1-100.","maximum": 100,"minimum": 1,"type": ["integer","null"],"default": 25},"backgroundImage": {"description": "Sets the file location of the image to draw over the window background when unfocused.","oneOf": [{"type": ["string","null"]},{"enum": ["desktopWallpaper"]}],"type": ["string","null"]},"backgroundImageOpacity": {"default": 1.0,"description": "Sets the transparency of the background image when unfocused. Accepts floating point values from 0-1.","maximum": 1.0,"minimum": 0.0,"type": "number"},"backgroundImageStretchMode": {"default": "uniformToFill","description": "Sets how the background image is resized to fill the window when unfocused.","enum": ["fill","none","uniform","uniformToFill"],"type": "string"},"backgroundImageAlignment": {"default": "center","enum": ["bottom","bottomLeft","bottomRight","center","left","right","top","topLeft","topRight"],"description": "Sets how the background image aligns to the boundaries of the window when unfocused. Possible values: \"center\", \"left\", \"top\", \"right\", \"bottom\", \"topLeft\", \"topRight\", \"bottomLeft\", \"bottomRight\"","type": "string"},"intenseTextStyle": {"default": "bright","description": "Controls how 'intense' text is rendered when unfocused. Values are \"bold\", \"bright\", \"all\" and \"none\"","enum": ["none","bold","bright","all"],"type": "string"},"adjustIndistinguishableColors": {"default": "never","description": "Setting to adjust the foreground color to make it more visible, based on the background color. When set to \"indexed\", we will only adjust the colors if they came from the color scheme. Other possible values are \"never\" and \"always\".","enum": ["never","indexed","always"],"type": "string"},"experimental.retroTerminalEffect": {"description": "When set to true, enable retro terminal effects when unfocused. This is an experimental feature, and its continued existence is not guaranteed.","type": "boolean"},"experimental.pixelShaderPath": {"description": "Use to set a path to a pixel shader to use with the Terminal when unfocused. Overrides `experimental.retroTerminalEffect`. This is an experimental feature, and its continued existence is not guaranteed.","type": "string"}},"type": "object"},"SchemePair": {"description": "Contains both a light and dark color scheme for the Terminal to use, depending on the theme of the application.","properties": {"light": {"default": "Campbell","description": "Name of the scheme to use when the app is using light theme","type": "string"},"dark": {"default": "Campbell","description": "Name of the scheme to use when the app is using dark theme","type": "string"}},"type": "object"},"FontConfig": {"properties": {"face": {"default": "Cascadia Mono","description": "Name of the font face used in the profile.","type": "string"},"size": {"default": 12,"description": "Size of the font in points.","minimum": 1,"type": "number"},"weight": {"default": "normal","description": "Sets the weight (lightness or heaviness of the strokes) for the given font. Possible values:\n -\"thin\"\n -\"extra-light\"\n -\"light\"\n -\"semi-light\"\n -\"normal\" (default)\n -\"medium\"\n -\"semi-bold\"\n -\"bold\"\n -\"extra-bold\"\n -\"black\"\n -\"extra-black\"\n or the corresponding numeric representation of OpenType font weight.","oneOf": [{"enum": ["thin","extra-light","light","semi-light","normal","medium","semi-bold","bold","extra-bold","black","extra-black"],"type": "string"},{"maximum": 990,"minimum": 100,"type": "integer"}]},"features": {"description": "Sets the DWrite font features for the given font. For example, { \"ss01\": 1, \"liga\":0 } will enable ss01 and disable ligatures.","type": "object","patternProperties": {"^(([A-Za-z0-9]){4})$": {"type": "integer"}},"additionalProperties": false},"axes": {"description": "Sets the DWrite font axes for the given font. For example, { \"wght\": 200 } will set the font weight to 200.","type": "object","patternProperties": {"^([A-Za-z]{4})$": {"type": "number"}},"additionalProperties": false},"cellWidth": {"$ref": "#/$defs/CSSLengthPercentage","description": "Override the width of the terminal's cells. The override works similar to CSS' letter-spacing. It defaults to the natural glyph advance width of the primary font rounded to the nearest pixel."},"cellHeight": {"$ref": "#/$defs/CSSLengthPercentage","description": "Override the height of the terminal's cells. The override works similar to CSS' line-height. Defaults to the sum of the natural glyph ascend, descend and line-gap of the primary font rounded to the nearest pixel. The default is usually quite close to setting this to 1.2."}},"type": "object"},"ProfileGuid": {"default": "{}","pattern": "^\\{[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}\\}$","type": "string"},"Icon": {"description": "Image file location or an emoji to be used as an icon. Displays within the tab, the dropdown menu, and jumplist.","type": ["string","null"]},"ShortcutActionName": {"enum": ["adjustFontSize","clearBuffer","closeOtherPanes","closeOtherTabs","closePane","closeTab","closeTabsAfter","closeWindow","commandPalette","copy","duplicateTab","expandSelectionToWord","exportBuffer","find","findMatch","focusPane","globalSummon","identifyWindow","identifyWindows","moveFocus","movePane","swapPane","markMode","moveTab","multipleActions","newTab","newWindow","nextTab","openNewTabDropdown","openSettings","openTabColorPicker","openWindowRenamer","paste","prevTab","renameTab","openSystemMenu","openTabRenamer","quakeMode","resetFontSize","resizePane","renameWindow","scrollDown","scrollDownPage","scrollUp","scrollUpPage","scrollToBottom","scrollToTop","sendInput","setColorScheme","setTabColor","splitPane","switchToTab","tabSearch","toggleAlwaysOnTop","toggleBlockSelection","toggleFocusMode","selectAll","setFocusMode","switchSelectionEndpoint","toggleFullscreen","setFullScreen","setMaximized","togglePaneZoom","toggleSplitOrientation","toggleReadOnlyMode","toggleShaderEffects","wt","quit","adjustOpacity","restoreLastClosed","addMark","scrollToMark","clearMark","clearAllMarks","searchWeb","experimental.colorSelection","unbound"],"type": "string"},"FocusDirection": {"enum": ["left","right","up","down","previous","nextInOrder","previousInOrder","first","parent","child"],"type": "string"},"ScrollToMarkDirection": {"enum": ["previous","next","first","last"],"type": "string"},"ResizeDirection": {"enum": ["left","right","up","down"],"type": "string"},"MoveTabDirection": {"enum": ["forward","backward"],"type": "string"},"FindMatchDirection": {"enum": ["next","prev"],"type": "string"},"SplitDirection": {"enum": ["auto","up","right","down","left"],"type": "string"},"CopyFormat": {"oneOf": [{"type": "boolean"},{"type": "array","items": {"type": "string","enum": ["html","rtf"]}},{"type": "string","enum": ["html","rtf","all","none"]}]},"AnchorKey": {"enum": ["ctrl","alt","shift"],"type": "string"},"CommandPaletteLaunchMode": {"enum": ["action","commandLine"],"type": "string"},"ClearBufferType": {"enum": ["all","screen","scrollback"],"type": "string"},"NewTerminalArgs": {"properties": {"commandline": {"description": "A commandline to use instead of the profile's","type": "string"},"tabTitle": {"description": "An initial tabTitle to use instead of the profile's","type": "string"},"startingDirectory": {"description": "A startingDirectory to use instead of the profile's","type": "string"},"profile": {"description": "Either the GUID or name of a profile to use, instead of launching the default","type": "string"},"index": {"type": "integer","description": "The index of the profile in the new tab dropdown (starting at 0)"},"tabColor": {"$ref": "#/$defs/Color","default": null,"description": "If provided, will set the tab's color to the given value"},"suppressApplicationTitle": {"type": "boolean","default": false,"description": "When set to true, tabTitle overrides the default title of the tab and any title change messages from the application will be suppressed. When set to false, tabTitle behaves as normal"},"colorScheme": {"description": "The name of a color scheme to use, instead of the one specified by the profile","type": "string"},"elevate": {"type": "boolean","default": false,"description": "This will override the profile's `elevate` setting."}},"type": "object"},"NewTabMenuEntryType": {"enum": ["source","profile","folder","separator","remainingProfiles","matchProfiles"]},"NewTabMenuEntry": {"properties": {"type": {"description": "The type of menu entry","$ref": "#/$defs/NewTabMenuEntryType"}},"required": ["type"],"type": "object"},"FolderEntryInlining": {"enum": ["never","auto"]},"FolderEntry": {"description": "A folder entry in the new tab dropdown","allOf": [{"$ref": "#/$defs/NewTabMenuEntry"},{"properties": {"type": {"type": "string","const": "folder"},"name": {"type": "string","default": "","description": "The name of the folder to show in the menu"},"icon": {"$ref": "#/$defs/Icon"},"entries": {"type": "array","description": "The entries to put inside this folder","minItems": 1,"items": {"$ref": "#/$defs/NewTabMenuEntry"}},"inline": {"description": "When set to auto and the folder only has a single entry, the entry will show directly and no folder will be rendered","default": "never","$ref": "#/$defs/FolderEntryInlining"},"allowEmpty": {"description": "Whether to render a folder without entries, or to hide it","default": "false","type": "boolean"}}}]},"SeparatorEntry": {"description": "A separator in the new tab dropdown","allOf": [{"$ref": "#/$defs/NewTabMenuEntry"},{"properties": {"type": {"type": "string","const": "separator"}}}]},"ProfileEntry": {"description": "A profile in the new tab dropdown","allOf": [{"$ref": "#/$defs/NewTabMenuEntry"},{"properties": {"type": {"type": "string","const": "profile"},"profile": {"type": "string","default": "","description": "The name or GUID of the profile to show in this entry"}}}]},"RemainingProfilesEntry": {"description": "The set of profiles that are not yet explicitly included in another entry, such as the profile or source entries. This entry can be used at most one time!","allOf": [{"$ref": "#/$defs/NewTabMenuEntry"},{"properties": {"type": {"type": "string","const": "remainingProfiles"}}}]},"MatchProfilesEntry": {"description": "A set of profiles all matching the given name, source, or command line, to show in the new tab dropdown","allOf": [{"$ref": "#/$defs/NewTabMenuEntry"},{"properties": {"type": {"type": "string","const": "matchProfiles"},"name": {"type": "string","default": "","description": "The name of the profiles to match"},"source": {"type": "string","default": "","description": "The source of the profiles to match"},"commandline": {"type": "string","default": "","description": "The command line of the profiles to match"}}}]},"SwitchToAdjacentTabArgs": {"oneOf": [{"type": "null"},{"enum": ["mru","inOrder","disabled"],"type": "string"}]},"ShortcutAction": {"properties": {"action": {"description": "The action to execute","$ref": "#/$defs/ShortcutActionName"}},"required": ["action"],"type": "object"},"AdjustFontSizeAction": {"description": "Arguments corresponding to an Adjust Font Size Action","allOf": [{"$ref": "#/$defs/ShortcutAction"},{"properties": {"action": {"type": "string","const": "adjustFontSize"},"delta": {"type": "integer","default": 0,"description": "How much to change the current font point size"}}}],"required": ["delta"]},"CopyAction": {"description": "Arguments corresponding to a Copy Text Action","allOf": [{"$ref": "#/$defs/ShortcutAction"},{"properties": {"action": {"type": "string","const": "copy"},"singleLine": {"type": "boolean","default": false,"description": "If true, the copied content will be copied as a single line (even if there are hard line breaks present in the text). If false, newlines persist from the selected text."},"dismissSelection": {"type": "boolean","default": true,"description": "If false, the copied content will be copied and the selection will not be dismissed. If true, the selection will be dismissed."},"copyFormatting": {"default": null,"description": "When set to `true`, the color and font formatting of selected text is also copied to your clipboard. When set to `false`, only plain text is copied to your clipboard. An array of specific formats can also be used. Supported array values include `html` and `rtf`. Plain text is always copied. Not setting this value inherits the behavior of the `copyFormatting` global setting.","oneOf": [{"$ref": "#/$defs/CopyFormat"},{"type": "null"}]}}}]},"NewTabAction": {"description": "Arguments corresponding to a New Tab Action","allOf": [{"$ref": "#/$defs/ShortcutAction"},{"$ref": "#/$defs/NewTerminalArgs"},{"properties": {"action": {"type": "string","const": "newTab"}}}]},"SwitchToTabAction": {"description": "Arguments corresponding to a Switch To Tab Action","allOf": [{"$ref": "#/$defs/ShortcutAction"},{"properties": {"action": {"type": "string","const": "switchToTab"},"index": {"type": "integer","default": 0,"description": "Which tab to switch to, with the first being 0"}}}],"required": ["index"]},"MovePaneAction": {"description": "Arguments corresponding to a Move Pane Action","allOf": [{"$ref": "#/$defs/ShortcutAction"},{"properties": {"action": {"type": "string","const": "movePane"},"index": {"type": "integer","default": 0,"description": "Which tab to move the pane to, with the first being 0"}}}],"required": ["index"]},"MoveFocusAction": {"description": "Arguments corresponding to a Move Focus Action","allOf": [{"$ref": "#/$defs/ShortcutAction"},{"properties": {"action": {"type": "string","const": "moveFocus"},"direction": {"$ref": "#/$defs/FocusDirection","default": "left","description": "The direction to move focus in, between panes. Direction can be 'previous' to move to the most recently used pane, 'nextInOrder' or 'previousInOrder' to move to the next or previous pane, 'first' to focus the first pane, or 'parent' or 'child' to move up and down the tree."}}}],"required": ["direction"]},"SwapPaneAction": {"description": "Arguments corresponding to a Swap Pane Action","allOf": [{"$ref": "#/$defs/ShortcutAction"},{"properties": {"action": {"type": "string","const": "swapPane"},"direction": {"$ref": "#/$defs/FocusDirection","default": "left","description": "The direction to move the focus pane in, swapping panes. Direction can be 'previous' to swap with the most recently used pane, 'nextInOrder' or 'previousInOrder' to move to the next or previous pane, or 'first' to swap with the first pane."}}}],"required": ["direction"]},"ResizePaneAction": {"description": "Arguments corresponding to a Resize Pane Action","allOf": [{"$ref": "#/$defs/ShortcutAction"},{"properties": {"action": {"type": "string","const": "resizePane"},"direction": {"$ref": "#/$defs/ResizeDirection","default": "left","description": "The direction to move the pane separator in."}}}],"required": ["direction"]},"ScrollToMarkAction": {"description": "Arguments corresponding to a Scroll to Mark Action","allOf": [{"$ref": "#/$defs/ShortcutAction"},{"properties": {"action": {"type": "string","const": "scrollToMark"},"direction": {"$ref": "#/$defs/ScrollToMarkDirection","default": "previous","description": "The direction to scroll to a mark."}}}],"required": ["direction"]},"SendInputAction": {"description": "Arguments corresponding to a Send Input Action","allOf": [{"$ref": "#/$defs/ShortcutAction"},{"properties": {"action": {"type": "string","const": "sendInput"},"input": {"type": "string","default": "","description": "The text input to feed into the shell. ANSI escape sequences may be used. Escape codes like \\x1b must be written as \\u001b."}}}],"required": ["input"]},"SplitPaneAction": {"description": "Arguments corresponding to a Split Pane Action","allOf": [{"$ref": "#/$defs/ShortcutAction"},{"$ref": "#/$defs/NewTerminalArgs"},{"properties": {"action": {"type": "string","const": "splitPane"},"split": {"$ref": "#/$defs/SplitDirection","default": "auto","description": "The orientation to split the pane in. Possible values:\n -\"auto\" (splits pane based on remaining space)\n -\"up\" (think [-] and above)\n -\"down\" (think [-] and below)\n -\"left\" (think [|] and to the left)\n -\"right\"(think [|] and to the right)"},"splitMode": {"default": "duplicate","description": "Control how the pane splits. Only accepts \"duplicate\" which will duplicate the focused pane's profile into a new pane."},"size": {"default": 0.5,"description": "Specify how large the new pane should be, as a fraction of the current pane's size. 1.0 would be 'all of the current pane', and 0.0 is 'None of the parent'. Accepts floating point values from 0-1 (default 0.5).","maximum": 1,"minimum": 0,"type": "number"}}}]},"ColorSelectionAction": {"description": "Arguments corresponding to a Color Selection Action","allOf": [{"$ref": "#/$defs/ShortcutAction"},{"properties": {"action": {"type": "string","const": "experimental.colorSelection"},"matchMode": {"type": "string","default": "none","description": "Specifies if only the selected text should be colored (0), or all instances of selected text (case-insensitive) (1).","enum": ["none","all"]},"foreground": {"$ref": "#/$defs/ColorOrIndex","type": "string","default": "","description": "The foreground color to use, as an RGB value (\"#rrggbb\"), or color index (\"iNN\"). If left unspecified it falls back to the default text foreground color."},"background": {"$ref": "#/$defs/ColorOrIndex","type": "string","default": "","description": "The background color to use, as an RGB value (\"#rrggbb\"), or color index (\"iNN\"). If left unspecified it falls back to the default text background color."}}}]},"OpenSettingsAction": {"description": "Arguments corresponding to a Open Settings Action","allOf": [{"$ref": "#/$defs/ShortcutAction"},{"properties": {"action": {"type": "string","const": "openSettings"},"target": {"type": "string","default": "settingsUI","description": "Opens Settings UI or settings file.","enum": ["settingsFile","defaultsFile","allFiles","settingsUI"]}}}]},"SetTabColorAction": {"description": "Arguments corresponding to a Set Tab Color Action","allOf": [{"$ref": "#/$defs/ShortcutAction"},{"properties": {"action": {"type": "string","const": "setTabColor"},"color": {"$ref": "#/$defs/Color","default": null,"description": "If provided, will set the tab's color to the given value. If omitted, will reset the tab's color."}}}]},"AddMarkAction": {"description": "Arguments corresponding to an Add Mark Action","allOf": [{"$ref": "#/$defs/ShortcutAction"},{"properties": {"action": {"type": "string","const": "addMark"},"color": {"$ref": "#/$defs/Color","default": null,"description": "If provided, will set the mark's color to the given value."}}}]},"SetColorSchemeAction": {"description": "Arguments corresponding to a Set Color Scheme Action","allOf": [{"$ref": "#/$defs/ShortcutAction"},{"properties": {"action": {"type": "string","const": "setColorScheme"},"colorScheme": {"type": "string","default": "","description": "the name of the scheme to apply to the active pane"}}}],"required": ["colorScheme"]},"SetFocusModeAction": {"description": "Arguments for a setFocusMode action","allOf": [{"$ref": "#/$defs/ShortcutAction"},{"properties": {"action": {"type": "string","const": "setFocusMode"},"isFocusMode": {"type": "boolean","description": "whether focus mode is enabled"}}}]},"SetFullScreenAction": {"description": "Arguments for a setFullScreen action","allOf": [{"$ref": "#/$defs/ShortcutAction"},{"properties": {"action": {"type": "string","const": "setFullScreen"},"isFullScreen": {"type": "boolean","description": "whether the window should be full screen"}}}]},"SetMaximizedAction": {"description": "Arguments for a setMaximized action","allOf": [{"$ref": "#/$defs/ShortcutAction"},{"properties": {"action": {"type": "string","const": "setMaximized"},"isMaximized": {"type": "boolean","description": "whether the window should be maximized"}}}]},"WtAction": {"description": "Arguments corresponding to a wt Action","allOf": [{"$ref": "#/$defs/ShortcutAction"},{"properties": {"action": {"type": "string","const": "wt"},"commandline": {"type": "string","default": "","description": "a `wt` commandline to run in the current window"}}}],"required": ["commandline"]},"CloseOtherTabsAction": {"description": "Arguments for a closeOtherTabs action","allOf": [{"$ref": "#/$defs/ShortcutAction"},{"properties": {"action": {"type": "string","const": "closeOtherTabs"},"index": {"oneOf": [{"type": "integer"},{"type": "null"}],"default": null,"description": "Close the tabs other than the one at this index. If no index is provided, use the focused tab's index."}}}]},"CloseTabsAfterAction": {"description": "Arguments for a closeTabsAfter action","allOf": [{"$ref": "#/$defs/ShortcutAction"},{"properties": {"action": {"type": "string","const": "closeTabsAfter"},"index": {"oneOf": [{"type": "integer"},{"type": "null"}],"default": null,"description": "Close the tabs following the tab at this index. If no index is provided, use the focused tab's index."}}}]},"CloseTabAction": {"description": "Arguments for a closeTab action","allOf": [{"$ref": "#/$defs/ShortcutAction"},{"properties": {"action": {"type": "string","const": "closeTab"},"index": {"oneOf": [{"type": "integer"},{"type": "null"}],"default": null,"description": "Close the tab at this index. If no index is provided, use the focused tab's index."}}}]},"ScrollUpAction": {"description": "Arguments for a scrollUp action","allOf": [{"$ref": "#/$defs/ShortcutAction"},{"properties": {"action": {"type": "string","const": "scrollUp"},"rowsToScroll": {"type": ["integer","null"],"default": null,"description": "Scroll up rowsToScroll lines. If no value is provided, use the system-level defaults."}}}]},"ScrollDownAction": {"description": "Arguments for a scrollDown action","allOf": [{"$ref": "#/$defs/ShortcutAction"},{"properties": {"action": {"type": "string","const": "scrollDown"},"rowsToScroll": {"type": ["integer","null"],"default": null,"description": "Scroll down rowsToScroll lines. If no value is provided, use the system-level defaults."}}}]},"MoveTabAction": {"description": "Arguments for moving a tab","allOf": [{"$ref": "#/$defs/ShortcutAction"},{"properties": {"action": {"type": "string","const": "moveTab"},"direction": {"$ref": "#/$defs/MoveTabDirection","description": "The direction to move the tab"}}}],"required": ["direction"]},"MultipleActionsAction": {"description": "Arguments for the multiple actions command","allOf": [{"$ref": "#/$defs/ShortcutAction"},{"properties": {"action": {"type": "string","const": "multipleActions"},"actions": {"$ref": "#/$defs/ShortcutAction","type": "array","minItems": 1,"description": "A list of other actions."}}}],"required": ["actions"]},"CommandPaletteAction": {"description": "Arguments for a commandPalette action","allOf": [{"$ref": "#/$defs/ShortcutAction"},{"properties": {"action": {"type": "string","const": "commandPalette"},"launchMode": {"$ref": "#/$defs/CommandPaletteLaunchMode","default": "action","description": "Toggle command palette in either action or command line mode. If no value is provided, the palette will launch in action mode."}}}]},"FindMatchAction": {"description": "Arguments corresponding to a Find Match Action","allOf": [{"$ref": "#/$defs/ShortcutAction"},{"properties": {"action": {"type": "string","const": "findMatch"},"direction": {"$ref": "#/$defs/FindMatchDirection","default": "prev","description": "The direction to search in. \"prev\" will search upwards in the buffer, and \"next\" will search downwards."}}}],"required": ["direction"]},"NewWindowAction": {"description": "Arguments corresponding to a New Window Action","allOf": [{"$ref": "#/$defs/ShortcutAction"},{"$ref": "#/$defs/NewTerminalArgs"},{"properties": {"action": {"type": "string","const": "newWindow"}}}]},"PrevTabAction": {"description": "Arguments corresponding to a Previous Tab Action","allOf": [{"$ref": "#/$defs/ShortcutAction"},{"properties": {"action": {"type": "string","const": "prevTab"},"tabSwitcherMode": {"$ref": "#/$defs/SwitchToAdjacentTabArgs","default": null,"description": "Move to the previous tab using \"tabSwitcherMode\". If no mode is provided, use the one globally defined one."}}}]},"NextTabAction": {"description": "Arguments corresponding to a Next Tab Action","allOf": [{"$ref": "#/$defs/ShortcutAction"},{"properties": {"action": {"type": "string","const": "nextTab"},"tabSwitcherMode": {"$ref": "#/$defs/SwitchToAdjacentTabArgs","default": null,"description": "Move to the next tab using \"tabSwitcherMode\". If no mode is provided, use the one globally defined one."}}}]},"RenameTabAction": {"description": "Arguments corresponding to a renameTab Action","allOf": [{"$ref": "#/$defs/ShortcutAction"},{"properties": {"action": {"type": "string","const": "renameTab"},"title": {"type": "string","default": "","description": "A title to assign to the tab. If omitted or null, this action will restore the tab's title to the original value."}}}]},"RenameWindowAction": {"description": "Arguments corresponding to a renameWindow Action","allOf": [{"$ref": "#/$defs/ShortcutAction"},{"properties": {"action": {"type": "string","const": "renameWindow"},"name": {"type": "string","default": "","description": "A name to assign to the window."}}}]},"FocusPaneAction": {"description": "Arguments corresponding to a focusPane Action","allOf": [{"$ref": "#/$defs/ShortcutAction"},{"properties": {"action": {"type": "string","const": "focusPane"},"id": {"type": "integer","minimum": 0,"default": 0,"description": "The ID of the pane to focus"}}}]},"ClearBufferAction": {"description": "Arguments corresponding to a clearBuffer Action","allOf": [{"$ref": "#/$defs/ShortcutAction"},{"properties": {"action": {"type": "string","const": "clearBuffer"},"clear": {"$ref": "#/$defs/ClearBufferType","default": "all","description": "What to clear. Accepts one of `screen`, `scrollback` or `all` (for both)."}}}]},"ExportBufferAction": {"description": "Arguments corresponding to a exportBuffer Action","allOf": [{"$ref": "#/$defs/ShortcutAction"},{"properties": {"action": {"type": "string","const": "exportBuffer"},"path": {"type": "string","default": "","description": "The path to export the text buffer to. If left blank, the Terminal will open a file picker to choose the path."}}}]},"GlobalSummonAction": {"description": "This is a special action that works globally in the OS, rather than only in the context of the terminal window. When pressed, this action will summon the terminal window.","allOf": [{"$ref": "#/$defs/ShortcutAction"},{"properties": {"action": {"type": "string","const": "globalSummon"},"desktop": {"type": "string","default": "toCurrent","description": "This controls how the terminal should interact with virtual desktops.\n- \"any\": Leave the window on whichever desktop it's already on - will switch to that desktop as the window is activated.\n- \"toCurrent\" (default): Move the window to the current virtual desktop.\n- \"onCurrent\": Only summon the window if it's already on the current virtual desktop. ","enum": ["any","toCurrent","onCurrent"]},"monitor": {"type": "string","default": "toMouse","description": "This controls the monitor that the window will be summoned from/to.\n- \"any\": Summon the most recently used window, regardless of which monitor it's currently on.\n- \"toCurrent\": Summon the most recently used window to the monitor with the current foreground window.\n- \"toMouse\" (default): Summon the most recently used window to the monitor where the mouse cursor is.","enum": ["any","toCurrent","toMouse"]},"name": {"type": "string","description": "When provided, summon the window whose name or ID matches the given name value. If no such window exists, then create a new window with that name."},"dropdownDuration": {"type": "integer","minimum": 0,"default": 0,"description": "When provided with a positive number, \"slide\" the window in from the top of the screen using an animation that lasts dropdownDuration milliseconds."},"toggleVisibility": {"type": "boolean","default": true,"description": "When true, pressing the assigned keys for this action will dismiss (minimize) the window when the window is currently the foreground window."}}}]},"QuakeModeAction": {"description": "This action is a special variation of the globalSummon action. It specifically summons a window called \"_quake\". If you would like to change the behavior of the quakeMode action, we recommended creating a new globalSummon entry.","allOf": [{"$ref": "#/$defs/ShortcutAction"},{"properties": {"action": {"type": "string","const": "quakeMode"}}}]},"SearchWebAction": {"description": "Search the web for selected text","allOf": [{"$ref": "#/$defs/ShortcutAction"},{"properties": {"action": {"type": "string","const": "searchWeb"},"queryUrl": {"type": "string","description": "URL of the web page to launch, %s is replaced with the selected text"}}}],"required": ["queryUrl"]},"AdjustOpacityAction": {"description": "Changes the opacity of the active Terminal window. If `relative` is specified, then this action will increase/decrease relative to the current opacity.","allOf": [{"$ref": "#/$defs/ShortcutAction"},{"properties": {"action": {"type": "string","const": "adjustOpacity"},"opacity": {"type": "integer","minimum": -100,"maximum": 100,"default": 0,"description": "How opaque the terminal should become or how much the opacity should be changed by, depending on the value of `relative`"},"relative": {"type": "boolean","default": true,"description": "If true, then adjust the current opacity by the given `opacity` parameter, additively. If false, set the opacity to exactly that value."}}}]},"ShowCloseButton": {"enum": ["always","hover","never","activeOnly"],"type": "string"},"ThemeColor": {"description": "A special kind of color for use in themes. Can be an #rrggbb color, #rrggbbaa color, or a special value. 'accent' is evaluated as the user's selected Accent color in the OS, and 'terminalBackground' will be evaluated as the background color of the active terminal pane.","oneOf": [{"pattern": "^#[A-Fa-f0-9]{3}(?:[A-Fa-f0-9]{3}(?:[A-Fa-f0-9]{2})?)?$","type": "string","format": "color","default": "#000000ff"},{"const": "accent","type": "string"},{"const": "terminalBackground","type": "string"},{"type": "null"}]},"TabTheme": {"additionalProperties": false,"description": "A set of properties for customizing the appearance of the tabs","properties": {"background": {"description": "The color of a tab when it is the active tab","$ref": "#/$defs/ThemeColor"},"unfocusedBackground": {"description": "The color of a tab when it is not the active tab","$ref": "#/$defs/ThemeColor"},"showCloseButton": {"description": "Controls the visibility of the close button on the tab","$ref": "#/$defs/ShowCloseButton"}}},"TabRowTheme": {"additionalProperties": false,"description": "A set of properties for customizing the appearance of the tab row","properties": {"background": {"description": "The color of the tab row when the window is the foreground window.","$ref": "#/$defs/ThemeColor"},"unfocusedBackground": {"description": "The color of the tab row when the window is inactive","$ref": "#/$defs/ThemeColor"}}},"WindowTheme": {"additionalProperties": false,"description": "A set of properties for customizing the appearance of the window itself","properties": {"applicationTheme": {"description": "Which UI theme the Terminal should use for controls","enum": [ "light", "dark", "system" ],"type": "string"},"useMica": {"description": "True if the Terminal should use a Mica backdrop for the window. This will apply underneath all controls (including the terminal panes and the titlebar)","type": "boolean","default": false},"experimental.rainbowFrame": {"description": "When enabled, the frame of the window will cycle through all the colors. Enabling this will override the `frame` and `unfocusedFrame` settings.","type": "boolean","default": false},"frame": {"description": "The color of the window frame when the window is inactive. This only works on Windows 11","$ref": "#/$defs/ThemeColor"},"unfocusedFrame": {"description": "The color of the window frame when the window is inactive. This only works on Windows 11","$ref": "#/$defs/ThemeColor"}}},"Theme": {"additionalProperties": false,"description": "A set of properties for customizing the appearance of the window. This controls things like the titlebar, the tabs, the application theme.","properties": {"name": {"type": "string","description": "The name of the theme. This will be displayed in the settings UI.","not": {"enum": [ "light", "dark", "system" ]}},"tab": {"$ref": "#/$defs/TabTheme"},"tabRow": {"$ref": "#/$defs/TabRowTheme"},"window": {"$ref": "#/$defs/WindowTheme"}}},"ThemePair": {"additionalProperties": false,"description": "A pair of Theme names, to allow the Terminal to switch theme based on the OS theme","properties": {"light": {"type": "string","description": "The name of the theme to use when the OS is in Light theme","default": "light"},"dark": {"type": "string","description": "The name of the theme to use when the OS is in Dark theme","default": "dark"}}},"NewTabMenu": {"description": "Defines the order and structure of the 'new tab' menu. It can consist of e.g. profiles, folders, and separators.","type": "array","items": {"oneOf": [{"$ref": "#/$defs/FolderEntry"},{"$ref": "#/$defs/SeparatorEntry"},{"$ref": "#/$defs/ProfileEntry"},{"$ref": "#/$defs/MatchProfilesEntry"},{"$ref": "#/$defs/RemainingProfilesEntry"}]}},"Keybinding": {"additionalProperties": false,"properties": {"command": {"description": "The action executed when the associated key bindings are pressed.","oneOf": [{"$ref": "#/$defs/AdjustFontSizeAction"},{"$ref": "#/$defs/CopyAction"},{"$ref": "#/$defs/ShortcutActionName"},{"$ref": "#/$defs/NewTabAction"},{"$ref": "#/$defs/SwitchToTabAction"},{"$ref": "#/$defs/MoveFocusAction"},{"$ref": "#/$defs/MovePaneAction"},{"$ref": "#/$defs/SwapPaneAction"},{"$ref": "#/$defs/ResizePaneAction"},{"$ref": "#/$defs/SendInputAction"},{"$ref": "#/$defs/SplitPaneAction"},{"$ref": "#/$defs/OpenSettingsAction"},{"$ref": "#/$defs/SetTabColorAction"},{"$ref": "#/$defs/SetColorSchemeAction"},{"$ref": "#/$defs/WtAction"},{"$ref": "#/$defs/CloseOtherTabsAction"},{"$ref": "#/$defs/CloseTabsAfterAction"},{"$ref": "#/$defs/CloseTabAction"},{"$ref": "#/$defs/ScrollUpAction"},{"$ref": "#/$defs/ScrollDownAction"},{"$ref": "#/$defs/MoveTabAction"},{"$ref": "#/$defs/MultipleActionsAction"},{"$ref": "#/$defs/CommandPaletteAction"},{"$ref": "#/$defs/FindMatchAction"},{"$ref": "#/$defs/NewWindowAction"},{"$ref": "#/$defs/NextTabAction"},{"$ref": "#/$defs/PrevTabAction"},{"$ref": "#/$defs/RenameTabAction"},{"$ref": "#/$defs/RenameWindowAction"},{"$ref": "#/$defs/FocusPaneAction"},{"$ref": "#/$defs/ExportBufferAction"},{"$ref": "#/$defs/ClearBufferAction"},{"$ref": "#/$defs/GlobalSummonAction"},{"$ref": "#/$defs/QuakeModeAction"},{"$ref": "#/$defs/AdjustOpacityAction"},{"$ref": "#/$defs/ColorSelectionAction"},{"$ref": "#/$defs/SearchWebAction"},{"type": "null"}]},"keys": {"description": "Defines the key combinations used to call the command. It must be composed of...\n -any number of modifiers (ctrl/alt/shift)\n -a non-modifier key","oneOf": [{"$ref": "#/$defs/KeyChordSegment"},{"items": {"$ref": "#/$defs/KeyChordSegment"},"minItems": 1,"type": "array"}]},"icon": {"$ref": "#/$defs/Icon"},"name": {"description": "The name that will appear in the command palette. If one isn't provided, the terminal will attempt to automatically generate a name.\nIf name is a string, it will be the name of the command.\nIf name is a object, the key property of the object will be used to lookup a localized string resource for the command","properties": {"key": {"type": "string"}},"type": ["string","object","null"]},"iterateOn": {"type": "string","description": "Used to create iterable commands based on other objects in your settings. Possible values:\n- \"profiles\" \n- \"schemes\"","enum": ["profiles","schemes"]},"commands": {"description": "List of commands to execute","items": {"$ref": "#/$defs/Keybinding/properties/command"},"minItems": 1,"type": "array"}},"anyOf": [{"required": ["name","commands"]},{"required": ["command"]}],"type": "object"},"Globals": {"additionalProperties": true,"description": "Properties that affect the entire window, regardless of the profile settings.","properties": {"alwaysOnTop": {"default": false,"description": "When set to true, the window is created on top of all other windows. If multiple windows are all \"always on top\", the most recently focused one will be the topmost","type": "boolean"},"alwaysShowTabs": {"default": true,"description": "When set to true, tabs are always displayed. When set to false and \"showTabsInTitlebar\" is set to false, tabs only appear after opening a new tab.","type": "boolean"},"centerOnLaunch": {"default": false,"description": "When set to `true`, the terminal window will auto-center itself on the display it opens on. The terminal will use the \"initialPosition\" to determine which display to open on.","type": "boolean"},"inputServiceWarning": {"default": true,"description": "Warning if 'Touch Keyboard and Handwriting Panel Service' is disabled.","type": "boolean"},"copyOnSelect": {"default": false,"description": "When set to true, a selection is immediately copied to your clipboard upon creation. When set to false, the selection persists and awaits further action.","type": "boolean"},"focusFollowMouse": {"default": false,"description": "When set to true, the terminal will focus the pane on mouse hover.","type": "boolean"},"compatibility.isolatedMode": {"default": false,"description": "When set to true, Terminal windows will not be able to interact with each other (including global hotkeys, tab drag/drop, running commandlines in existing windows, etc.). This is a compatibility escape hatch for users who are running into certain windowing issues.","type": "boolean"},"copyFormatting": {"default": true,"description": "When set to `true`, the color and font formatting of selected text is also copied to your clipboard. When set to `false`, only plain text is copied to your clipboard. An array of specific formats can also be used. Supported array values include `html` and `rtf`. Plain text is always copied.","$ref": "#/$defs/CopyFormat"},"trimBlockSelection": {"default": true,"description": "When set to true, trailing white-spaces will be removed from text in rectangular (block) selection while copied to your clipboard. When set to false, the white-spaces will be preserved.","type": "boolean"},"trimPaste": {"default": true,"description": "When enabled, the Terminal will automatically trim trailing whitespace characters when pasting text","type": "boolean"},"experimental.detectURLs": {"default": true,"description": "When set to true, URLs will be detected by the Terminal. This will cause URLs to underline on hover and be clickable by pressing Ctrl.","type": "boolean"},"experimental.enableColorSelection": {"default": false,"description": "When set to true, adds preset \"Color Selection\" actions (keybindings) to allow colorizing selected text via keystroke, similar to the legacy conhost EnableColorSelection feature (such as alt+6 to color the selection red).","type": "boolean"},"disableAnimations": {"default": false,"description": "When set to `true`, visual animations will be disabled across the application.","type": "boolean"},"largePasteWarning": {"default": true,"description": "When set to true, trying to paste text with more than 5 KiB of characters will display a warning asking you whether to continue or not with the paste.","type": "boolean"},"multiLinePasteWarning": {"default": true,"description": "When set to true, trying to paste text with a \"new line\" character will display a warning asking you whether to continue or not with the paste.","type": "boolean"},"defaultProfile": {"description": "Sets the default profile. Opens by clicking the \"+\" icon or typing the key binding assigned to \"newTab\".","type": "string"},"startupActions": {"description": "Sets the list of actions to apply if no command line is provided. Uses the same format as command line arguments","type": "string"},"disabledProfileSources": {"description": "Disables all the dynamic profile generators in this list, preventing them from adding their profiles to the list of profiles on startup.","items": {"$ref": "#/$defs/DynamicProfileSource"},"type": "array"},"experimental.rendering.forceFullRepaint": {"description": "When set to true, we will redraw the entire screen each frame. When set to false, we will render only the updates to the screen between frames.","type": "boolean"},"experimental.rendering.software": {"description": "When set to true, we will use the software renderer (a.k.a. WARP) instead of the hardware one.","type": "boolean"},"experimental.input.forceVT": {"description": "Force the terminal to use the legacy input encoding. Certain keys in some applications may stop working when enabling this setting.","type": "boolean"},"experimental.useBackgroundImageForWindow": {"default": false,"description": "When set to true, the background image for the currently focused profile is expanded to encompass the entire window, beneath other panes.","type": "boolean"},"compatibility.reloadEnvironmentVariables": {"default": true,"description": "When set to true, when opening a new tab or pane it will get reloaded environment variables.","type": "boolean"},"initialCols": {"default": 120,"description": "The number of columns displayed in the window upon first load. If \"launchMode\" is set to \"maximized\" (or \"maximizedFocus\"), this property is ignored.","maximum": 999,"minimum": 1,"type": "integer"},"initialPosition": {"$ref": "#/$defs/Coordinates","description": "The position of the top left corner of the window upon first load. On a system with multiple displays, these coordinates are relative to the top left of the primary display. If \"launchMode\" is set to \"maximized\" (or \"maximizedFocus\"), the window will be maximized on the monitor specified by those coordinates."},"initialRows": {"default": 30,"description": "The number of rows displayed in the window upon first load. If \"launchMode\" is set to \"maximized\" (or \"maximizedFocus\"), this property is ignored.","maximum": 999,"minimum": 1,"type": "integer"},"startOnUserLogin": {"default": false,"description": "When set to true, this enables the launch of Terminal at startup. Setting this to false will disable the startup task entry. If the Terminal startup task entry is disabled either by org policy or by user action this setting will have no effect.","type": "boolean"},"firstWindowPreference": {"default": "defaultProfile","description": "Defines what behavior the terminal takes when it starts. \"defaultProfile\" will have the terminal launch with one tab of the default profile, and \"persistedWindowLayout\" will cause the terminal to save its layout on close and reload it on open.","enum": ["defaultProfile","persistedWindowLayout"],"type": "string"},"launchMode": {"default": "default","description": "Defines whether the terminal will launch as maximized, full screen, or in a window. Setting this to \"focus\" is equivalent to launching the terminal in the \"default\" mode, but with the focus mode enabled. Similar, setting this to \"maximizedFocus\" will result in launching the terminal in a maximized window with the focus mode enabled.","enum": ["fullscreen","maximized","default","focus","maximizedFocus"],"type": "string"},"rowsToScroll": {"default": "system","description": "This parameter once allowed you to override the systemwide \"choose how many lines to scroll at one time\" setting. It no longer does so. However, you can customize the number of lines to scroll in \"scrollUp\" and \"scrollDown\" bindings.","maximum": 999,"minimum": 0,"type": ["integer","string"],"deprecated": true},"minimizeToNotificationArea": {"default": false,"description": "When set to true, minimizing a Terminal window will no longer appear in the taskbar. Instead, a Terminal icon will appear in the notification area through which the user can access their windows.","type": "boolean"},"alwaysShowNotificationIcon": {"default": false,"description": "When set to true, the Terminal's notification icon will always be shown in the notification area.","type": "boolean"},"showAdminShield": {"default": true,"description": "When set to true, the Terminal's tab row will display a shield icon when the Terminal is running with administrator privileges","type": "boolean"},"useAcrylicInTabRow": {"default": false,"description": "When set to true, the tab row will have an acrylic material background with 50% opacity.","type": "boolean"},"actions": {"description": "Properties are specific to each custom action.","items": {"$ref": "#/$defs/Keybinding"},"type": "array"},"keybindings": {"description": "[deprecated] Use actions instead.","deprecated": true,"items": {"$ref": "#/$defs/Keybinding"},"type": "array"},"newTabMenu": {"$ref": "#/$defs/NewTabMenu"},"language": {"default": "","description": "Sets an override for the app's preferred language, expressed as a BCP-47 language tag like en-US.","type": "string"},"theme": {"default": "dark","description": "Sets the theme of the application. This value should be the name of one of the themes defined in `themes`. The Terminal also includes the themes `dark`, `light`, and `system`.","oneOf": [{"type": "string"},{"$ref": "#/$defs/ThemePair"}]},"themes": {"description": "The list of available themes","items": {"$ref": "#/$defs/Theme"},"type": "array"},"showTabsInTitlebar": {"default": true,"description": "When set to true, the tabs are moved into the titlebar and the titlebar disappears. When set to false, the titlebar sits above the tabs.","type": "boolean"},"showTerminalTitleInTitlebar": {"default": true,"description": "When set to true, titlebar displays the title of the selected tab. When set to false, titlebar displays \"Windows Terminal\".","type": "boolean"},"snapToGridOnResize": {"default": false,"description": "When set to true, the window will snap to the nearest character boundary on resize. When false, the window will resize smoothly","type": "boolean"},"tabWidthMode": {"default": "equal","description": "Sets the width of the tabs. Possible values include:\n -\"equal\" sizes each tab to the same width\n -\"titleLength\" sizes each tab to the length of its title\n -\"compact\" sizes each tab to the length of its title when focused, and shrinks to the size of only the icon when the tab is unfocused.","enum": ["compact","equal","titleLength"],"type": "string"},"wordDelimiters": {"default": " ./\\()\"'-:,.;<>~!@#$%^&*|+=[]{}~?│","description": "Determines the delimiters used in a double click selection.","type": "string"},"confirmCloseAllTabs": {"default": true,"description": "When set to \"true\" closing a window with multiple tabs open will require confirmation.  When set to \"false\", the confirmation dialog will not appear.","type": "boolean"},"useTabSwitcher": {"default": true,"description": "Deprecated. Please use \"tabSwitcherMode\" instead.","oneOf": [{"type": "boolean"},{"enum": ["mru","inOrder","disabled"],"type": "string"}],"deprecated": true},"tabSwitcherMode": {"default": "inOrder","description": "When set to \"true\" or \"mru\", the \"nextTab\" and \"prevTab\" commands will use the tab switcher UI, with most-recently-used ordering. When set to \"inOrder\", these actions will switch tabs in their current ordering. Set to \"false\" to disable the tab switcher.","oneOf": [{"type": "boolean"},{"enum": ["mru","inOrder","disabled"],"type": "string"}]},"windowingBehavior": {"default": "useNew","description": "Controls how new terminal instances attach to existing windows. \"useNew\" will always create a new window. \"useExisting\" will create new tabs in the most recently used window on this virtual desktop, and \"useAnyExisting\" will create tabs in the most recent window on any desktop.","enum": ["useNew","useExisting","useAnyExisting"],"type": "string"},"newTabPosition": {"default": "afterLastTab","description": "Position of newly created tabs. Possible values are \"afterLastTab\" and \"afterCurrentTab\".","enum": ["afterLastTab","afterCurrentTab"],"type": "string"},"autoHideWindow": {"default": false,"description": "If enabled, Terminal window will be hidden as soon as it loses focus.","type": "boolean"}},"required": ["defaultProfile"],"type": "object"},"Profile": {"description": "Properties specific to a unique profile.","additionalProperties": false,"properties": {"acrylicOpacity": {"default": 0.5,"description": "[deprecated] Please use `opacity` instead.","deprecated": true,"maximum": 1,"minimum": 0,"type": "number"},"antialiasingMode": {"default": "grayscale","description": "Controls how text is antialiased in the renderer. Possible values are \"grayscale\", \"cleartype\" and \"aliased\". Note that changing this setting will require starting a new terminal instance.","enum": ["grayscale","cleartype","aliased"],"type": "string"},"background": {"$ref": "#/$defs/Color","default": "#0c0c0c","description": "Sets the background color of the text. Overrides \"background\" from the color scheme. Uses hex color format: \"#rrggbb\".","type": ["string","null"]},"unfocusedAppearance": {"$ref": "#/$defs/AppearanceConfig","description": "Sets the appearance of the terminal when it is unfocused.","type": ["object","null"]},"font": {"$ref": "#/$defs/FontConfig","description": "Sets the font options of the terminal.","type": ["object","null"]},"backgroundImage": {"description": "Sets the file location of the image to draw over the window background.","oneOf": [{"type": ["string","null"]},{"enum": ["desktopWallpaper"]}],"type": ["string","null"]},"backgroundImageAlignment": {"default": "center","enum": ["bottom","bottomLeft","bottomRight","center","left","right","top","topLeft","topRight"],"description": "Sets how the background image aligns to the boundaries of the window. Possible values: \"center\", \"left\", \"top\", \"right\", \"bottom\", \"topLeft\", \"topRight\", \"bottomLeft\", \"bottomRight\"","type": "string"},"backgroundImageOpacity": {"default": 1.0,"description": "Sets the transparency of the background image. Accepts floating point values from 0-1.","maximum": 1.0,"minimum": 0.0,"type": "number"},"backgroundImageStretchMode": {"default": "uniformToFill","description": "Sets how the background image is resized to fill the window.","enum": ["fill","none","uniform","uniformToFill"],"type": "string"},"bellStyle": {"default": "audible","description": "Controls what happens when the application emits a BEL character. When set to \"all\", the Terminal will play a sound, flash the taskbar icon (if the terminal window is not in focus) and flash the window. An array of specific behaviors can also be used. Supported array values include `audible`, `window` and `taskbar`. When set to \"none\", nothing will happen.","$ref": "#/$defs/BellStyle"},"bellSound": {"description": "Sets the sound played when the application emits a BEL. When set to an array, the terminal will pick one of those sounds at random.","$ref": "#/$defs/BellSound"},"closeOnExit": {"default": "automatic","description": "Sets how the profile reacts to termination or failure to launch. Possible values:\n -\"graceful\" (close when exit is typed or the process exits normally)\n -\"always\" (always close)\n -\"automatic\" (behave as \"graceful\" only for processes launched by terminal, behave as \"always\" otherwise)\n -\"never\" (never close).\ntrue and false are accepted as synonyms for \"graceful\" and \"never\" respectively.","oneOf": [{"enum": ["never","graceful","always","automatic"],"type": "string"},{"type": "boolean"}]},"colorScheme": {"default": "Campbell","description": "Name of the terminal color scheme to use. Color schemes are defined under \"schemes\".","oneOf": [{"$ref": "#/$defs/SchemePair"},{"type": "string"}]},"commandline": {"description": "Executable used in the profile.","type": "string"},"cursorColor": {"oneOf": [{"$ref": "#/$defs/Color"},{"type": "null"}],"description": "Sets the color of the cursor. Overrides the cursor color from the color scheme. Uses hex color format: \"#rrggbb\"."},"cursorHeight": {"description": "Sets the percentage height of the cursor starting from the bottom. Only works when cursorShape is set to \"vintage\". Accepts values from 1-100.","maximum": 100,"minimum": 1,"type": ["integer","null"],"default": 25},"cursorShape": {"default": "bar","description": "Sets the shape of the cursor. Possible values:\n -\"bar\" ( ┃, default )\n -\"doubleUnderscore\" ( ‗ )\n -\"emptyBox\" ( ▯ )\n -\"filledBox\" ( █ )\n -\"underscore\" ( ▁ )\n -\"vintage\" ( ▃ )","enum": ["bar","doubleUnderscore","emptyBox","filledBox","underscore","vintage"],"type": "string"},"elevate": {"type": "boolean","default": false,"description": "When true, this profile should always open in an elevated context. If the window isn't running as an Administrator, then a new elevated window will be created."},"environment": {"description": "Key-value pairs representing environment variables to set. Environment variable names are not case sensitive. You can reference existing environment variable names by enclosing them in literal percent characters (e.g. %PATH%).","type": "object","additionalProperties": {"type": "string"}},"experimental.autoMarkPrompts": {"default": false,"description": "When set to true, prompts will automatically be marked.","type": "boolean"},"experimental.connection.passthroughMode": {"description": "When set to true, directs the PTY for this connection to use pass-through mode instead of the original Conhost PTY simulation engine. This is an experimental feature, and its continued existence is not guaranteed.","type": "boolean"},"experimental.retroTerminalEffect": {"description": "When set to true, enable retro terminal effects. This is an experimental feature, and its continued existence is not guaranteed.","type": "boolean"},"experimental.showMarksOnScrollbar": {"default": false,"description": "When set to true, marks added to the buffer via the addMark action will appear on the scrollbar.","type": "boolean"},"experimental.pixelShaderPath": {"description": "Use to set a path to a pixel shader to use with the Terminal. Overrides `experimental.retroTerminalEffect`. This is an experimental feature, and its continued existence is not guaranteed.","type": "string"},"useAtlasEngine": {"description": "Windows Terminal 1.16 and later ship with a new, performant text renderer. Set this to false to revert back to the old text renderer.","type": "boolean","default": true},"fontFace": {"default": "Cascadia Mono","description": "[deprecated] Define 'face' within the 'font' object instead.","type": "string","deprecated": true},"fontSize": {"default": 12,"description": "[deprecated] Define 'size' within the 'font' object instead.","minimum": 1,"type": "number","deprecated": true},"fontWeight": {"default": "normal","description": "[deprecated] Define 'weight' within the 'font' object instead.","oneOf": [{"enum": ["thin","extra-light","light","semi-light","normal","medium","semi-bold","bold","extra-bold","black","extra-black"],"type": "string"},{"maximum": 990,"minimum": 100,"type": "integer"}],"deprecated": true},"intenseTextStyle": {"default": "bright","description": "Controls how 'intense' text is rendered. Values are \"bold\", \"bright\", \"all\" and \"none\"","enum": ["none","bold","bright","all"],"type": "string"},"foreground": {"$ref": "#/$defs/Color","default": "#cccccc","description": "Sets the text color. Overrides \"foreground\" from the color scheme. Uses hex color format: \"#rrggbb\".","type": ["string","null"]},"guid": {"$ref": "#/$defs/ProfileGuid","description": "Unique identifier of the profile. Written in registry format: \"{00000000-0000-0000-0000-000000000000}\"."},"hidden": {"default": false,"description": "If set to true, the profile will not appear in the list of profiles. This can be used to hide default profiles and dynamically generated profiles, while leaving them in your settings file.","type": "boolean"},"historySize": {"default": 9001,"description": "The number of lines above the ones displayed in the window you can scroll back to.","minimum": -1,"type": "integer"},"icon": {"$ref": "#/$defs/Icon"},"name": {"description": "Name of the profile. Displays in the dropdown menu.","minLength": 1,"type": "string"},"opacity": {"default": 100,"description": "Sets the opacity of the window for the profile. Accepts values from 0-100. Defaults to 50 when useAcrylic is set to true.","maximum": 100,"minimum": 0,"type": "number"},"padding": {"default": "8, 8, 8, 8","description": "Sets the padding around the text within the window. Can have three different formats:\n -\"#\" sets the same padding for all sides \n -\"#, #\" sets the same padding for left-right and top-bottom\n -\"#, #, #, #\" sets the padding individually for left, top, right, and bottom.","oneOf": [{"pattern": "^-?[0-9]+(\\.[0-9]+)?( *, *-?[0-9]+(\\.[0-9]+)?|( *, *-?[0-9]+(\\.[0-9]+)?){3})?$","type": "string"},{"type": "integer"}]},"adjustIndistinguishableColors": {"default": "never","description": "Setting to adjust the foreground color to make it more visible, based on the background color. When set to \"indexed\", we will only adjust the colors if they came from the color scheme. Other possible values are \"never\" and \"always\".","enum": ["never","indexed","always"],"type": "string"},"scrollbarState": {"default": "visible","description": "Defines the visibility of the scrollbar.","enum": ["visible","hidden","always"],"type": "string"},"selectionBackground": {"oneOf": [{"$ref": "#/$defs/Color"},{"type": "null"}],"description": "Sets the background color of selected text. Overrides selectionBackground set in the color scheme. Uses hex color format: \"#rrggbb\"."},"snapOnInput": {"default": true,"description": "When set to true, the window will scroll to the command input line when typing. When set to false, the window will not scroll when you start typing.","type": "boolean"},"altGrAliasing": {"default": true,"description": "By default Windows treats Ctrl+Alt as an alias for AltGr. When altGrAliasing is set to false, this behavior will be disabled.","type": "boolean"},"source": {"description": "Stores the name of the profile generator that originated this profile.","type": ["string","null"]},"startingDirectory": {"description": "The directory the shell starts in when it is loaded.","type": ["string","null"]},"suppressApplicationTitle": {"description": "When set to true, tabTitle overrides the default title of the tab and any title change messages from the application will be suppressed. When set to false, tabTitle behaves as normal.","type": "boolean","default": false},"tabColor": {"$ref": "#/$defs/Color","description": "Sets the color of the profile's tab. Using the tab color picker will override this color.","type": ["string","null"]},"tabTitle": {"description": "If set, will replace the name as the title to pass to the shell on startup. Some shells (like bash) may choose to ignore this initial value, while others (cmd, powershell) may use this value over the lifetime of the application.","type": ["string","null"]},"useAcrylic": {"default": false,"description": "When set to true, the window will have an acrylic material background. When set to false, the window will have a plain, untextured background.","type": "boolean"}},"type": "object"},"ProfileList": {"description": "A list of profiles and the properties specific to each.","items": {"$ref": "#/$defs/Profile","required": ["guid","name"]},"type": "array"},"ProfilesObject": {"description": "A list of profiles and default settings that apply to all of them","properties": {"list": {"$ref": "#/$defs/ProfileList"},"defaults": {"description": "The default settings that apply to every profile.","$ref": "#/$defs/Profile"}},"type": "object"},"SchemeList": {"description": "Properties are specific to each color scheme. ColorTool is a great tool you can use to create and explore new color schemes. All colors use hex color format.","items": {"additionalProperties": false,"properties": {"name": {"description": "Name of the color scheme.","minLength": 1,"type": "string"},"background": {"$ref": "#/$defs/Color","description": "Sets the background color of the color scheme."},"black": {"$ref": "#/$defs/Color","description": "Sets the color used as ANSI black."},"blue": {"$ref": "#/$defs/Color","description": "Sets the color used as ANSI blue."},"brightBlack": {"$ref": "#/$defs/Color","description": "Sets the color used as ANSI bright black."},"brightBlue": {"$ref": "#/$defs/Color","description": "Sets the color used as ANSI bright blue."},"brightCyan": {"$ref": "#/$defs/Color","description": "Sets the color used as ANSI bright cyan."},"brightGreen": {"$ref": "#/$defs/Color","description": "Sets the color used as ANSI bright green."},"brightPurple": {"$ref": "#/$defs/Color","description": "Sets the color used as ANSI bright purple."},"brightRed": {"$ref": "#/$defs/Color","description": "Sets the color used as ANSI bright red."},"brightWhite": {"$ref": "#/$defs/Color","description": "Sets the color used as ANSI bright white."},"brightYellow": {"$ref": "#/$defs/Color","description": "Sets the color used as ANSI bright yellow."},"cursorColor": {"$ref": "#/$defs/Color","default": "#FFFFFF","description": "Sets the cursor color of the color scheme."},"cyan": {"$ref": "#/$defs/Color","description": "Sets the color used as ANSI cyan."},"foreground": {"$ref": "#/$defs/Color","description": "Sets the foreground color of the color scheme."},"green": {"$ref": "#/$defs/Color","description": "Sets the color used as ANSI green."},"purple": {"$ref": "#/$defs/Color","description": "Sets the color used as ANSI purple."},"red": {"$ref": "#/$defs/Color","description": "Sets the color used as ANSI red."},"selectionBackground": {"$ref": "#/$defs/Color","description": "Sets the selection background color of the color scheme."},"white": {"$ref": "#/$defs/Color","description": "Sets the color used as ANSI white."},"yellow": {"$ref": "#/$defs/Color","description": "Sets the color used as ANSI yellow."}},"type": "object"},"type": "array"}},"allOf": [{"$ref": "#/$defs/Globals"},{"additionalItems": true,"properties": {"profiles": {"oneOf": [{"$ref": "#/$defs/ProfileList"},{"$ref": "#/$defs/ProfilesObject"}]},"schemes": {"$ref": "#/$defs/SchemeList"}},"required": ["profiles","schemes","defaultProfile"]}]
}

相关文章:

为Windows Terminal设置背景图片

直接通过界面上选项无法达到修改背景图片的目的&#xff0c;后再在官网&#xff0c;和git上找到通过修改配置文件来更改背景图片 首先打开设置界面 点击左下角打开settings.json文件 在json中profiles关键字default选项相面增加几个key,就像下面 修改前修改后 修改后的termin…...

【Spring】-Spring中Bean对象的存取

作者&#xff1a;学Java的冬瓜 博客主页&#xff1a;☀冬瓜的主页&#x1f319; 专栏&#xff1a;【Framework】 主要内容&#xff1a;往spring中存储Bean对象的三大方式&#xff1a;XML方式(Bean标签)&#xff1b;五大类注解&#xff1b;方法注解。从spring中取对象的两种方式…...

机器人CPP编程基础-03变量类型Variables Types

机器人CPP编程基础-02变量Variables 全文AI生成。 C #include<iostream>using namespace std;main() {int a10,b35; // 4 bytescout<<"Value of a : "<<a<<" Address of a : "<<&a <<endl;cout<<"Val…...

或许有用的开源项目平台——物联网、区块链、商城、CMS、客服系统、低代码、可视化、ERP等

摘自个人印象笔记Evernote Export wumei-smart-物美智能开源物联网平台 官网&#xff1a;https://wumei.live/ gitee&#xff1a;https://gitee.com/kerwincui/wumei-smart 一个简单易用的物联网平台。可用于搭建物联网平台以及二次开发和学习。适用于智能家居、智慧办公、智慧…...

火车头采集伪原创插件【php源码】

大家好&#xff0c;小编来为大家解答以下问题&#xff0c;python代码大全和用法&#xff0c;python代码大全简单&#xff0c;现在让我们一起来看看吧&#xff01; 火车头采集ai伪原创插件截图&#xff1a; 1、题目&#xff1a;列表转换为字典。 程序源代码&#xff1a; 1 #!/us…...

【数学】CF1514 C

Problem - 1514C - Codeforces 题意&#xff1a; 思路&#xff1a; Code&#xff1a; #include <bits/stdc.h>using i64 long long;constexpr int N 2e5 10; constexpr int M 2e5 10; constexpr int mod 998244353;void solve() {int n;std::cin >> n;std:…...

SqlServer基础之(触发器)

概念&#xff1a; 触发器&#xff08;trigger&#xff09;是SQL server 提供给程序员和数据分析员来保证数据完整性的一种方法&#xff0c;它是与表事件相关的特殊的存储过程&#xff0c;它的执行不是由程序调用&#xff0c;也不是手工启动&#xff0c;而是由事件来触发&#x…...

数据结构刷题训练:队列实现栈

目录 前言 1. 题目&#xff1a;使用队列实现栈 2. 思路 3. 分析 3.1 创建栈 3.2入栈 3.3 出栈 3.4 栈顶数据 3.5 判空和 “ 栈 ” 的销毁 4. 题解 总结 前言 我们已经学习了栈和队列&#xff0c;也都实现了它们各自的底层接口&#xff0c;那么接下我们就要开始栈和队列的专项刷…...

(统计学习方法|李航)第四章 朴素贝叶斯算法——贝叶斯估计

贝叶斯估计方法&#xff1a; 计算男女时只有两个值&#xff0c;所以K2 贝叶斯估计就是拉普拉斯平滑 估计方法&#xff1a;为什么叫做贝叶斯估计呢&#xff1f; 例题&#xff1a; 重新回顾以下朴素贝叶斯&#xff1a; 对他求导&#xff0c;求出最大值 得到了色i他的估计值&…...

企业直播MR虚拟直播(MR混合现实直播技术)视频介绍

到底什么是企业直播MR虚拟直播&#xff08;MR混合现实直播技术&#xff09;&#xff1f; 企业直播MR虚拟直播新玩法&#xff08;MR混合现实直播技术&#xff09; 我的文章推荐&#xff1a; [视频图文] 线上研讨会是什么&#xff0c;企业对内对外培训可以用线上研讨会吗&#x…...

React Fiber: 从 Reconciliation 到 Concurrent Mode

React Fiber 是 React 中的一种新的协调算法&#xff0c;它的主要目的是提高 React 的性能和可维护性。在 React Fiber 之前&#xff0c;React 使用了一种叫做 Stack Reconciliation 的算法来处理组件的更新和渲染。但是 Stack Reconciliation 存在一些问题&#xff0c;比如无法…...

【PostgreSQL内核学习(十一)—— OpenGauss源码学习(CopyTo)】

可优化语句执行 概述什么是列存储&#xff1f;列存的优势 相关函数CopyToCStoreCopyToCopyStatetupleDescCStoreScanDesc CStoreBeginScanRelationSnapshotProjectionInfo GetCStoreNextBatchRunScanFillVecBatchCStoreIsEndScan CStoreEndScan 声明&#xff1a;本文的部分内容…...

计算机网络 网络层 IPv4地址

A类地址第一位固定0 B类10 其下同理...

【程序员社交】多和高层次人群交流

定义问题&#xff1a;如何多和高层次人群交流获取经验提升自己&#xff1f; 收集信息&#xff1a;通过社交媒体、行业论坛、行业大会等途径获取高层次人群的信息和观点&#xff0c;并了解他们的工作经历、技能和能力。 分析信息&#xff1a;分析收集到的信息&#xff0c;了解…...

机器学习笔记 - 基于C++的​​深度学习 三、实现成本函数

机器学习中的建模 作为人工智能工程师,我们通常将每个任务或问题定义为一个函数。 例如,如果我们正在开发面部识别系统,我们的第一步是将问题定义为将输入图像映射到标识符的函数F(X)。但是问题是如何知道F(X)公式? 事实上,使用公式或一系列固有规则来定义F(X)是不可行的(…...

lazada、shopee店铺如何利用测评提高权重和排名?

在 lazada、shopee平台上开店后&#xff0c;卖家们必须对店铺的权重进行更多的关注。如果店铺的权重越高&#xff0c;那么它就会带来更多的流量和更多的订单&#xff0c;那么在 lazada、shopee平台上开设一家店铺&#xff0c;该怎样增加它的店铺权重和排名呢&#xff1f; laza…...

安全第二次

一&#xff0c;iframe <iframe>标签用于在网页里面嵌入其他网页。 1&#xff0c;sandbox属性 如果嵌入的网页是其他网站的页面&#xff0c;因不了解对方会执行什么操作&#xff0c;因此就存在安全风险。为了限制<iframe>的风险&#xff0c;HTML 提供了sandb…...

125、SpringBoot可以同时处理多少请求?

SpringBoot可以同时处理多少请求? 一、前言二、线程池4大参数图解三、代码示例一、前言 我们都知道,SpringBoot默认的内嵌容器是Tomcat,也就是我们的程序实际上是运行在Tomcat里的。所以与其说SpringBoot可以处理多少请求,到不如说Tomcat可以处理多少请求。 关于Tomcat的默…...

SSE技术和WebSocket技术实现即时通讯

文章目录 一、SSE1.1 什么是SSE1.2 工作原理1.3 特点和适用场景1.4 API用法1.5 代码实现 二、WebSocket2.1 什么是WebSocket2.2 工作原理2.3 特点和适用场景2.4 API用法2.5 代码实现2.6 心跳检测 三、SSE与WebSocket的比较 当涉及到实现实时通信的Web应用程序时&#xff0c;两种…...

什么是敏捷开发?

敏捷开发流程&#xff1a;制度化、规范化地PUA程序员的顶级神器&#xff01;&#xff01;&#xff01;...

【kafka】Golang实现分布式Masscan任务调度系统

要求&#xff1a; 输出两个程序&#xff0c;一个命令行程序&#xff08;命令行参数用flag&#xff09;和一个服务端程序。 命令行程序支持通过命令行参数配置下发IP或IP段、端口、扫描带宽&#xff0c;然后将消息推送到kafka里面。 服务端程序&#xff1a; 从kafka消费者接收…...

Appium+python自动化(十六)- ADB命令

简介 Android 调试桥(adb)是多种用途的工具&#xff0c;该工具可以帮助你你管理设备或模拟器 的状态。 adb ( Android Debug Bridge)是一个通用命令行工具&#xff0c;其允许您与模拟器实例或连接的 Android 设备进行通信。它可为各种设备操作提供便利&#xff0c;如安装和调试…...

可靠性+灵活性:电力载波技术在楼宇自控中的核心价值

可靠性灵活性&#xff1a;电力载波技术在楼宇自控中的核心价值 在智能楼宇的自动化控制中&#xff0c;电力载波技术&#xff08;PLC&#xff09;凭借其独特的优势&#xff0c;正成为构建高效、稳定、灵活系统的核心解决方案。它利用现有电力线路传输数据&#xff0c;无需额外布…...

定时器任务——若依源码分析

分析util包下面的工具类schedule utils&#xff1a; ScheduleUtils 是若依中用于与 Quartz 框架交互的工具类&#xff0c;封装了定时任务的 创建、更新、暂停、删除等核心逻辑。 createScheduleJob createScheduleJob 用于将任务注册到 Quartz&#xff0c;先构建任务的 JobD…...

基础测试工具使用经验

背景 vtune&#xff0c;perf, nsight system等基础测试工具&#xff0c;都是用过的&#xff0c;但是没有记录&#xff0c;都逐渐忘了。所以写这篇博客总结记录一下&#xff0c;只要以后发现新的用法&#xff0c;就记得来编辑补充一下 perf 比较基础的用法&#xff1a; 先改这…...

【SQL学习笔记1】增删改查+多表连接全解析(内附SQL免费在线练习工具)

可以使用Sqliteviz这个网站免费编写sql语句&#xff0c;它能够让用户直接在浏览器内练习SQL的语法&#xff0c;不需要安装任何软件。 链接如下&#xff1a; sqliteviz 注意&#xff1a; 在转写SQL语法时&#xff0c;关键字之间有一个特定的顺序&#xff0c;这个顺序会影响到…...

【算法训练营Day07】字符串part1

文章目录 反转字符串反转字符串II替换数字 反转字符串 题目链接&#xff1a;344. 反转字符串 双指针法&#xff0c;两个指针的元素直接调转即可 class Solution {public void reverseString(char[] s) {int head 0;int end s.length - 1;while(head < end) {char temp …...

WordPress插件:AI多语言写作与智能配图、免费AI模型、SEO文章生成

厌倦手动写WordPress文章&#xff1f;AI自动生成&#xff0c;效率提升10倍&#xff01; 支持多语言、自动配图、定时发布&#xff0c;让内容创作更轻松&#xff01; AI内容生成 → 不想每天写文章&#xff1f;AI一键生成高质量内容&#xff01;多语言支持 → 跨境电商必备&am…...

前端开发面试题总结-JavaScript篇(一)

文章目录 JavaScript高频问答一、作用域与闭包1.什么是闭包&#xff08;Closure&#xff09;&#xff1f;闭包有什么应用场景和潜在问题&#xff1f;2.解释 JavaScript 的作用域链&#xff08;Scope Chain&#xff09; 二、原型与继承3.原型链是什么&#xff1f;如何实现继承&a…...

Web 架构之 CDN 加速原理与落地实践

文章目录 一、思维导图二、正文内容&#xff08;一&#xff09;CDN 基础概念1. 定义2. 组成部分 &#xff08;二&#xff09;CDN 加速原理1. 请求路由2. 内容缓存3. 内容更新 &#xff08;三&#xff09;CDN 落地实践1. 选择 CDN 服务商2. 配置 CDN3. 集成到 Web 架构 &#xf…...