General profile settings in Windows Terminal
The settings listed below are specific to each unique profile. If you'd like a setting to apply to all of your profiles, you can add it to the defaults
section above the list of profiles in your settings.json file.
"defaults":
{
// SETTINGS TO APPLY TO ALL PROFILES
},
"list":
[
// PROFILE OBJECTS
]
Profile Ordering
The ordering of profiles in the "list"
determines the profile index numbering. This is used to map to the launch key combo, such as Ctrl+Shift+1.
To change the profile index number, simply cut/paste the profile objects above or below each other.
The first in the "list"
will map to index 1, hence, it will be assigned to the key combo, Ctrl+Shift+1.
Name
This is the name of the profile that will be displayed in the dropdown menu. This value is also used as the "title" to pass to the shell on startup. Some shells (like bash
) may choose to ignore this initial value, while others (Command Prompt
, PowerShell
) may use this value over the lifetime of the application. This "title" behavior can be overridden by using tabTitle
.
Property name: name
Necessity: Required
Accepts: String
Command line
This is the executable used in the profile.
Property name: commandline
Necessity: Optional
Accepts: Executable file name as a string
Default value: "cmd.exe"
Example: To run a batch file each time cmd.exe is run, set this value to "cmd.exe /k path\to\script.bat"
Starting directory
This is the directory the shell starts in when it is loaded.
Property name: startingDirectory
Necessity: Optional
Accepts: Folder location as a string
Default value: "%USERPROFILE%"
NOTE: When starting directory is not defined, the default value will be set to "%USERPROFILE%"
(the path relative to your user settings, for example this may be C:\Users\<your username>
). However, if the starting directory is explicitly set to null
, then you will get different results depending on where you launch Terminal.
Example: Start the PowerShell profile in the GitHubRepos folder of your Documents directory by finding the powershell.exe profile and adding "startingDirectory": "%USERPROFILE%/Documents/GitHubRepos",
Example with WSL: When setting the starting directory for a Linux distribution installed via WSL, use the format: "startingDirectory": "\\\\wsl$\\DISTRO NAME\\home\\USERNAME"
, replacing with the placeholders with the proper names of your distribution. For example, "startingDirectory": "\\\\wsl$\\Ubuntu-20.04\\home\\user1"
. If you are using the Windows Terminal Settings UI, rather than the settings.json file, to declare this path, you can use the Browse... button to select your starting directory or enter the WSL path as: //wsl.localhost/DISTRO NAME/home/USERNAME
. For example, //wsl.localhost/Ubuntu-20.04/home/user1
.
Default behavior: When the startingDirectory value is not specified, you will get different results depending on where you launch Terminal:
- If you run Windows Terminal from the Start menu:
%WINDIR%\System32
- If you run wt.exe from the Start menu:
%WINDIR%\System32
- If you run wt.exe from Win+R:
%USERPROFILE%
- If you run wt.exe from the explorer address bar: whatever folder you were looking at.
Note
Backslashes need to be escaped. For example, C:\Users\USERNAME\Documents
should be entered as C:\\Users\\USERNAME\\Documents
.
Icon
This sets the icon that displays within the tab, dropdown menu, jumplist, and tab switcher.
Property name: icon
Necessity: Optional
Accepts: File location as a string, or an emoji
Example: By placing the icon image ubuntu.ico
in the folder located at %LOCALAPPDATA%\Packages\Microsoft.WindowsTerminal_8wekyb3d8bbwe\RoamingState
, you can display the icon by adding this line to the profile in your settings.json: "icon": "ms-appdata:///roaming/ubuntu.ico"
.
___
Tab title
If set, this 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 (Command Prompt
, PowerShell
) may use this value over the lifetime of the application. If you'd like to learn how to have the shell set your title, visit the tab title tutorial.
Property name: tabTitle
Necessity: Optional
Accepts: String
___
Automatically run as Administrator
If set, this profile will automatically open up in an "elevated" window (running as Administrator) by default. If you run this profile from an unelevated window, then a new elevated terminal window will be created to host this profile. If you launch this profile from an already elevated window, then it will open as a new tab.
When this property is set to false
, opening this profile in an elevated window will not launch an unelevated window to host this profile. The profile will simply open in the elevated window, running as Administrator.
If you set this property in profiles.defaults
, then all profiles will launch as Administrator by default, unless overridden by specifically setting this to false.
This property can be overridden in the newTab
and splitPane
actions, with the elevate
property.
Elevated and unelevated tabs cannot exist in the same terminal window. For more details, please see the FAQ.
Property name: elevate
Necessity: Optional
Accepts: true
, false
Default value: false
___
Hide profile from dropdown
If hidden
is 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. To learn more about dynamic profiles, visit the Dynamic profiles page.
Property name: hidden
Necessity: Optional
Accepts: true
, false
Default value: false
Windows Terminal