{ "$id": "https://raw.githubusercontent.com/SebastianSpeitel/terminal_schema/master/schema_4.json", "$schema": "http://json-schema.org/draft-04/schema", "description": "Config file for the Windows Terminal", "definitions": { "hexColor": { "type": "string", "pattern": "^#[0-9a-fA-F]{6}$" }, "guid": { "type": "string", "pattern": "{\\d{8}(-\\d{4}){3}-\\d{12}}" }, "filePath": { "type": "string", "$comment": "TODO: pattern" }, "path": { "type": "string", "$comment": "TODO: pattern" } }, "properties": { "globals": { "description": "Globals", "type": "object", "properties": { "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 typing Ctrl + T.", "type": "boolean" }, "copyOnSelect": { "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.", "default": false, "type": "boolean" }, "defaultProfile": { "@ref": "#/definitions/guid", "description": "Sets the default profile. Opens by typing Ctrl + T or by clicking the '+' icon. The guid of the desired default profile is used as the value." }, "initialCols": { "default": 120, "description": "The number of columns displayed in the window upon first load.", "type": "integer" }, "initialRows": { "default": 30, "description": "The number of rows displayed in the window upon first load.", "type": "integer" }, "keybindings": { "description": "TODO", "items": { "description": "TODO", "properties": { "command": { "description": "The command executed when the associated key bindings are pressed.", "type": "string" }, "keys": { "description": "Defines the key combinations used to call the command.", "items": { "description": "TODO", "type": "string" }, "type": "array" } }, "required": [ "command", "keys" ], "type": "object" }, "type": "array" }, "requestedTheme": { "default": "system", "description": "\"Sets the theme of the application. Possible values: \"light\", \"dark\", \"system\"\"", "type": "string", "enum": [ "light", "dark", "system" ] }, "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" }, "wordDelimiters": { "default": " /\\()\"'-:,.;<>~!@#$%^&*|+=[]{}~?│", "description": "Determines the delimiters used in a double click selection.", "type": "string" } }, "required": [ "alwaysShowTabs", "defaultProfile", "initialCols", "initialRows", "requestedTheme", "showTerminalTitleInTitlebar" ] }, "profiles": { "description": "TODO", "items": { "description": "TODO", "properties": { "acrylicOpacity": { "default": 0.5, "description": "When useAcrylic is set to true, it sets the transparency of the window for the profile. Accepts floating point values from 0-1.", "maximum": 1, "minimum": 0, "type": "number" }, "background": { "@ref": "#/definitions/hexColor", "description": "Sets the background color of the profile. Overrides background set in color scheme if colorscheme is set. Uses hex color format: \"#rrggbb\"." }, "backgroundImage": { "@ref": "#/defintions/filePath", "description": "Sets the file location of the Image to draw over the window background." }, "backgroundImageAlignment": { "default": "center", "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", "enum": [ "center", "left", "top", "right", "bottom", "topLeft", "topRight", "bottomLeft", "bottomRight" ] }, "backgroundImageOpacity": { "default": 1, "description": "Sets the transparency of the background image. Accepts floating point values from 0-1.", "maximum": 1, "minimum": 0, "type": "number" }, "backgroundImageStretchMode": { "default": "uniformToFill", "description": "Sets how the background image is resized to fill the window. Possible values: \"none\", \"fill\", \"uniform\", \"uniformToFill\"", "type": "string", "enum": [ "none", "fill", "uniform", "uniformToFill" ] }, "closeOnExit": { "default": true, "description": "When set to true, the selected tab closes when exit is typed. When set to false, the tab will remain open when exit is typed.", "type": "boolean" }, "colorScheme": { "$comment": "TODO: only allow strings defined under schemes", "default": "Campbell", "description": "Name of the terminal color scheme to use. Color schemes are defined under schemes.", "type": "string" }, "colorTable": { "description": "Array of colors used in the profile if colorscheme is not set. Colors use hex color format: \"#rrggbb\". Ordering is as follows: [black, red, green, yellow, blue, magenta, cyan, white, bright black, bright red, bright green, bright yellow, bright blue, bright magenta, bright cyan, bright white]", "items": { "@ref": "#/definitions/hexColor" }, "type": "array", "minItems": 16, "maxItems": 16 }, "commandline": { "@ref": "#/definitions/filePath", "default": "powershell.exe", "description": "Executable used in the profile." }, "cursorColor": { "@ref": "#/definitions/hexColor", "default": "#FFFFFF", "description": "Sets the cursor color for the profile. 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 25-100.", "maximum": 100, "minimum": 25, "type": "integer" }, "cursorShape": { "default": "bar", "description": "Sets the cursor shape for the profile. Possible values: \"vintage\" ( ▃ ), \"bar\" ( ┃ ), \"underscore\" ( ▁ ), \"filledBox\" ( █ ), \"emptyBox\" ( ▯ )", "type": "string", "enum": [ "vintage", "bar", "underscore", "filledBox", "emptyBox" ] }, "fontFace": { "default": "Consolas", "description": "Name of the font face used in the profile. We will try to fallback to Consolas if this can't be found or is invalid.", "type": "string" }, "fontSize": { "default": 10, "description": "Sets the font size.", "type": "integer" }, "foreground": { "@ref": "#/defintions/hexColor", "description": "Sets the foreground color of the profile. Overrides foreground set in color scheme if colorscheme is set. Uses hex color format: \"#rrggbb\"." }, "guid": { "@ref": "#/definitions/guid", "description": "Unique identifier of the profile. Written in registry format: \"{00000000-0000-0000-0000-000000000000}\"." }, "historySize": { "default": 9001, "description": "The number of lines above the ones displayed in the window you can scroll back to.", "type": "integer" }, "icon": { "@ref": "#/defintions/hexColor", "description": "Image file location of the icon used in the profile. Displays within the tab and the dropdown menu." }, "name": { "default": "PowerShell Core", "description": "Name of the profile. Displays in the dropdown menu.
Additionally, this value will be used 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. This \"title\" behavior can be overriden by using `tabTitle`.", "type": "string" }, "padding": { "default": "0, 0, 0, 0", "description": "Sets the padding around the text within the window. Can have three different formats: \"#\" sets the same padding for all sides, \"#, #\" sets the same padding for left-right and top-bottom, and \"#, #, #, #\" sets the padding individually for left, top, right, and bottom.", "type": "string", "pattern": "^\\d+(, *\\d+(, *\\d+, *\\d+)?)?$", "$comment": "TODO: May allow decimal values" }, "scrollbarState": { "description": "Defines the visibility of the scrollbar. Possible values: \"visible\", \"hidden\"", "type": "string", "enum": [ "visible", "hidden" ] }, "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" }, "startingDirectory": { "@ref": "#/definitions/path", "default": "%USERPROFILE%", "description": "The directory the shell starts in when it is loaded." }, "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" }, "useAcrylic": { "default": false, "description": "When set to true, the window will have an acrylic background. When set to false, the window will have a plain, untextured background.", "type": "boolean" } }, "required": [ "acrylicOpacity", "closeOnExit", "colorScheme", "commandline", "cursorColor", "cursorShape", "fontFace", "fontSize", "guid", "historySize", "name", "padding", "snapOnInput", "startingDirectory", "useAcrylic" ], "type": "object" }, "minItems": 1, "type": "array", "uniqueItems": true }, "schemes": { "description": "TODO", "items": { "description": "TODO", "properties": { "background": { "@ref": "#/defintions/hexColor", "description": "Sets the background color of the color scheme." }, "black": { "@ref": "#/defintions/hexColor", "description": "Sets the color used as ANSI black." }, "blue": { "@ref": "#/defintions/hexColor", "description": "Sets the color used as ANSI blue." }, "brightBlack": { "@ref": "#/defintions/hexColor", "description": "Sets the color used as ANSI bright black." }, "brightBlue": { "@ref": "#/defintions/hexColor", "description": "Sets the color used as ANSI bright blue." }, "brightCyan": { "@ref": "#/defintions/hexColor", "description": "Sets the color used as ANSI bright cyan." }, "brightGreen": { "@ref": "#/defintions/hexColor", "description": "Sets the color used as ANSI bright green." }, "brightPurple": { "@ref": "#/defintions/hexColor", "description": "Sets the color used as ANSI bright purple." }, "brightRed": { "@ref": "#/defintions/hexColor", "description": "Sets the color used as ANSI bright red." }, "brightWhite": { "@ref": "#/defintions/hexColor", "description": "Sets the color used as ANSI bright white." }, "brightYellow": { "@ref": "#/defintions/hexColor", "description": "Sets the color used as ANSI bright yellow." }, "cyan": { "@ref": "#/defintions/hexColor", "description": "Sets the color used as ANSI cyan." }, "foreground": { "@ref": "#/defintions/hexColor", "description": "Sets the foreground color of the color scheme." }, "green": { "@ref": "#/defintions/hexColor", "description": "Sets the color used as ANSI green." }, "name": { "description": "Name of the color scheme.", "type": "string" }, "purple": { "@ref": "#/defintions/hexColor", "description": "Sets the color used as ANSI purple." }, "red": { "@ref": "#/defintions/hexColor", "description": "Sets the color used as ANSI red." }, "white": { "@ref": "#/defintions/hexColor", "description": "Sets the color used as ANSI white." }, "yellow": { "@ref": "#/defintions/hexColor", "description": "Sets the color used as ANSI yellow." } }, "required": [ "background", "black", "blue", "brightBlack", "brightBlue", "brightCyan", "brightGreen", "brightPurple", "brightRed", "brightWhite", "brightYellow", "cyan", "foreground", "green", "name", "purple", "red", "white", "yellow" ], "type": "object" }, "type": "array" } }, "required": [ "globals", "profiles", "schemes" ], "title": "Windows Terminal config", "type": "object" }