Skip to content

How to customize the new Windows Terminal with Visual Studio Code

Emanuele Bartolesi on June 23, 2019

A few days ago Microsoft released a very early version of the new Windows Terminal. The Windows Terminal is a new, modern, fast, efficient, powerfu... [Read Full]
markdown guide

It's a very promising terminal app which I will likely switch to once it matures.

The current version doesn't allow pressing AltGr with number keys which means I can't type certain important shell characters. Needs polishing, indeed.


yes... very promising... let's see in the near future... :)


We use the opens source “Git Bash” for windows on our office laptops. We then configure Visual Studio Code to use that as the integrated terminal. Then whenever we open a new Code window to switch to a different project we have an embedded bash in that Code window in the right folder. Git Bash as all the core tools (find, awk, sed, etc) and extras like ssh and gpg. This means that on legacy windows we have the same solid technology we use in the cloud. It also makes the windows experience the same as working at home on open source on a mac book pro. Git Bash also interacts with the clipboard to cut and paste into the terminal.


We use Git Bash frequently in my office as well. Now, if I just figure out how to integrate it into Terminal without it opening up a new window...


Yes, you just change the setting in VS Code to tell it to use the bash.exe and when vs code sees any paths in any terminal text it turns them into links to open the files in the editor pane. I will dig the config out of the corporate wiki when I get a chance.


I started playing with it over the weekend. It's pretty nice, even in its early state. I've already set up a new SSH profile (goodbye PuTTY). I'm tempted to submit a PR to clean up the titlebar and borders.


Can you show me your settings JSON? I can't figure out how to link ssh with windows terminal.


So, I first followed Scott Hanselman's instructions for getting SSh set up with a public key so that I wouldn't have to enter my username and password every time I opened up my SSH terminal. You can find those here:

After that, I created a new profile in Terminal by copying and pasting the PowerShell profile. You need to create a new guid value (there are free generators online) or else it will just open up the first profile it finds. Then, set the commandline parameter like this:

"commandline" : "ssh.exe @"

That's all there is to it.


After creating a new profile, I get the following error when opening the terminal app: "Failed to load settings" "Settings could not be loaded from file - temporarily using the default settings. Check for syntax errors, including trailing commas."

I have checked with a validator, and there is no JSON syntax error, it conforms with RFC4627.

And I can't see that any of the keys are wrong, they're all copy-pasted. I've tried using both \\ and / as directory separator in the path to the background image, but it doesn't seem to make a difference. And the background image does exist on that path. Also, I made sure the GUID was new and not used by any other profiles.


The trailer for Terminal had a segment where you could see some color coded text, VScode style, It looked like directly editing C++ code inside the Command window itself!
any ideas how to do this? C++ inside Terminal


I tried it out today for a few minutes and the first thing I noticed is that it is VERY early access. It froze on me once already (without typing any commands, just switching tabs) and also, the title bar (IMO) looks so bad that it's almost funny. Oh and yeah, I couldn't access the settings at all, it just asked me which program would I like to use to do so. But well, I figured out why it did while writing this comment :).


"looks so bad" yet don't suggest how it can be improved?
I personally am feeling terminal, I love the prettiness of UWP's, almost like Electron programs.


Any idea on how I can change the starting directory to my WSL home directory? Currently, I type cd ~ anytime I want to make this switch.

Thank you.


Add this to your settings in the relevant profile: "startingDirectory": "//wsl$/Ubuntu/home/yourname" or whatever is the path that works in Explorer.


I would suggest you to define the HOME environment variable. This worked for me with Git Bash.


In the "globals" section of the json you can set Columns and Rows. Anyone know if you can set the Windows Position so the window opens in the same spot every time?


How can I make the color of the title bar match the color scheme?


how to change "startingDirectory" : "%USERPROFILE%" to custom directory


It's possible to change the default terminal to ubuntu instead of power shell on open WT?


In the profiles.json file set the default profile GUID to the profile that corresponds to the Ubuntu profile. With this set, when you open the Terminal or use Ctrl + Shift + T, it will open Ubuntu by default.

code of conduct - report abuse