Startup settings in Windows Terminal
The properties listed below affect the entire terminal window, regardless of the profile settings. These should be placed at the root of your settings.json file.
Default profile
Set the default profile that opens by typing Ctrl+Shift+T, typing the key binding assigned to newTab
, running wt new-tab
without specifying a profile, or clicking the '+' icon.
Property name: defaultProfile
Necessity: Required
Accepts: GUID or profile name as a string
Default value: PowerShell's GUID
Default terminal application
Set the default terminal emulator in Windows for all command line applications to run inside of.
Property name: This modifies an OS setting and does not have a property name inside the settings.json file.
Necessity: Required
Accepts: Any terminal emulator that appears in the dropdown
Default value: Windows Console Host
Important
This feature is only available when running Windows 10 Insider Program Dev Channel or Windows 11.
Launch on machine startup
When set to true
, this enables the launch of Windows Terminal at startup. Setting this to false
will disable the startup task entry.
Note: if the Windows Terminal startup task entry is disabled either by org policy or by user action this setting will have no effect.
Property name: startOnUserLogin
Necessity: Optional
Accepts: true
, false
Default value: false
Behavior when starting a new terminal session
When set to "defaultProfile"
, Windows Terminal will start a new session by opening a single tab with your default profile.
When set to "persistedWindowLayout"
, this enables Windows Terminal to save the layout of open windows on close and restore all saved windows on starting a new session. Windows Terminal will save the layout of all open windows automatically to assist with restoration from crashes and will also save the layout when using the quit
action. Additionally, closing the last open window by clicking the X
button or using the closeWindow
command will save the layout of that last window.
Note: Currently, Windows Terminal will save the following information:
Each window's position, size, and name
The tab layout of each window, including the layout and profile of each pane, but not any contents of those panes
If your shell is configured to report the current working directory that will be saved as well
Property name: firstWindowPreference
Necessity: Optional
Accepts: "defaultProfile"
, "persistedWindowLayout"
Default value: "defaultProfile"
Launch mode
This 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 focus mode enabled. Similarly, setting this to maximizedFocus
will result in launching the terminal in a maximized window with focus mode enabled.
Property name: launchMode
Necessity: Optional
Accepts: "default"
, "maximized"
, "fullscreen"
, "focus"
, "maximizedFocus"
Default value: "default"
New instance behavior
This setting controls how new terminal instances attach to existing windows. This property is only used if the --window,-w window
command line argument is not provided. This setting accepts the following possible values:
useNew
: Create a new window, always. This is how the terminal always behaved prior to version 1.7.useExisting
: Create new tabs in the most recently used window on this desktop. If there's not an existing window on this virtual desktop, then create a new terminal window.useAnyExisting
: Create new tabs in the most recently used window, regardless of which virtual desktop the window is on.
Property name: windowingBehavior
Necessity: Optional
Accepts: "useNew"
, "useExisting"
, "useAnyExisting"
Default value: "useNew"
Launch size
Columns on first launch
This is the number of character columns displayed in the window upon first load. If launchMode
is set to "maximized"
or "maximizedFocus"
, this property is ignored.
Property name: initialCols
Necessity: Optional
Accepts: Integer
Default value: 120
Rows on first launch
This is the number of rows displayed in the window upon first load. If launchMode
is set to "maximized"
or "maximizedFocus"
, this property is ignored.
Property name: initialRows
Necessity: Optional
Accepts: Integer
Default value: 30
Launch position
This sets the pixel 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 an X or Y coordinate is not provided, the terminal will use the system default for that value. If launchMode
is set to "maximized"
or "maximizedFocus"
, the window will be maximized on the monitor specified by those coordinates.
Property name: initialPosition
Necessity: Optional
Accepts: Coordinates as a string in the following formats: ","
, "#,#"
, "#,"
, ",#"
Default value: ","
Center on launch
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.
This interacts with the other launch settings in the following ways:
"initialPosition": "x,y"
,"centerOnLaunch": true
,"launchMode": "default"
: center on the monitor thatx,y
is on."initialPosition": "x,y"
,"centerOnLaunch": true
,"launchMode": "maximized"
: maximized on the monitor thatx,y
is on (centerOnLaunch
adds nothing)."initialPosition": <omitted>
,"centerOnLaunch": true
,"launchMode": "default"
: center on the default monitor."initialPosition": <omitted>
,"centerOnLaunch": true
,"launchMode": "focus"
: center and enter focus mode on the default monitor."initialPosition": <omitted>
,"centerOnLaunch": true
,"launchMode": "maximized"
: maximized on the default monitor (centerOnLaunch
adds nothing).
Property name: centerOnLaunch
Necessity: Optional
Accepts: true
, false
Default value: false
Disable dynamic profiles
This sets which dynamic profile generators are disabled, preventing them from adding their profiles to the list of profiles on startup. For information on dynamic profiles, visit the Dynamic profiles page.
Property name: disabledProfileSources
Necessity: Optional
Accepts: "Windows.Terminal.Wsl"
, "Windows.Terminal.Azure"
, "Windows.Terminal.PowershellCore"
, and/or "Windows.Terminal.SSH"
inside an array
Default value: []
Startup actions
This sets the list of actions to execute on startup, allowing the terminal to launch with a custom set of tabs and panes by default. These actions will be applied only if no command line arguments were supplied. The list of actions is represented by a string with the same format as commands in the command line arguments. For more information about the commands format, visit the Command line arguments page.
Property name: startupActions
Necessity: Optional
Accepts: String representing a list of commands to run
Default value: ""
Continue running in the background (Preview)
When set to true
, this enables the terminal to continue running in the background after the last window is closed. This allows globalSummon
and quake mode to work even when no windows are open. This setting is only available in Preview builds of the Terminal.
Property name: compatibility.allowHeadless
Necessity: Optional
Accepts: true
, false
Default value: false
Windows Terminal