How to set mintty.exe as the default terminal on Windows? - visual-studio-code

I am trying to set the https://github.com/mintty/mintty terminal installed by Cygwin as the default Visual Studio Code terminal with:
"terminal.integrated.shell.windows": "D:\\Cygwin\\bin\\mintty.exe",
But it opens the Mintty.exe terminal on a new window, instead of show it as an embedded console.
Related thread I found about it:
How to change the integrated terminal in visual studio code or VSCode
How to Integrate babun shell in VS code
Is it possible to configure Babun/ZSH for the integrated terminal on Windows?
How to integrate terminal whth babun on windows?

You should use "D:\\Cygwin\\bin\\bash.exe" instead of mintty
cheers.

There are two terminal settings, you may want set them like this:
"terminal.external.windowsExec": "D:\\cygwin64\\bin\\mintty.exe",
"terminal.integrated.shell.windows": "D:\\cygwin64\\bin\\bash.exe",

Related

Is there a way to programmatically open a NEW built-in terminal in VSCode from the terminal/bash?

Specifically I'd like to run a terminal command from vscode's built in terminal and have that command open another new vscode built-in terminal. Is this possible?
This is related to my question here - https://github.com/mklement0/ttab/issues/51#issuecomment-1372825316
Say I have the following command in my package.json scripts:
"sayHello": "ttab echo hello",
And I run npm run sayHello from the vscode integrated terminal. Is
there a way to have it so that the new terminal that is created is
created within the integrated terminal instead of from (in my case)
the default mac terminal application?

How do I get around the verified bug in Windows 1903 and launch the VSCode integrated terminal?

I just did a fresh install of Windows 10 Pro version 1903 build 18362.116 and Visual Studio Code. Now the integrated terminal only launches externally.
Pressing Ctrl + ~ results in this.
What am I missing? How do I get it to open integrated again?
EDIT
After working with VSCode team it is a verified bug. See the Github issue here. I posted the workaround as an answer here.
OK, worked through this one in VSCode repo issues.
For now, until it's fixed, turn off ConPTY integration in the User Settings.
💥💥💥
The issue now says use legacy console. To change the setting open a cmd prompt. Right click the title to bring up properties.
Then Uncheck 'Use legacy console'
To change the integrated terminal on Windows, you just need to change the terminal.integrated.shell.windows line:
Open VS User Settings (Preferences > User Settings). This will open two side-by-side documents.
Check if "terminal.integrated.shell.windows" has value "C:\\Bin\\Cmder\\Cmder.exe" setting to the User Settings document on the right.
Remove this line.
Ctrl + ~ will now open integrated terminal of VSCode.
If the above solution doesn't work then can you try below values and check if it works for you:
// Command Prompt
"terminal.integrated.shell.windows": "C:\\Windows\\System32\\cmd.exe"
// PowerShell
"terminal.integrated.shell.windows": "C:\\Windows\\System32\\WindowsPowerShell\\v1.0\\powershell.exe"
// Git Bash
"terminal.integrated.shell.windows": "C:\\Program Files\\Git\\bin\\bash.exe"
// Bash on Ubuntu (on Windows)
"terminal.integrated.shell.windows": "C:\\Windows\\System32\\bash.exe"
From the Command Palette (Ctrl+Shift+P), use the View: Toggle Integrated Terminal command.
Try custom shortcut:
[
{
"key": "ctrl+`",
"command": "workbench.action.terminal.toggleTerminal"
}
]
Had this problem fixed. Found the solution from the VS Code support.
for error:
Terminal exits with code 3221225786 (or similar)#
"This can happen when you have legacy console mode enabled in conhost's properties. To change this, open cmd.exe from the start menu, right-click the title bar, go to Properties and under the Options tab, uncheck Use legacy console."
source: VS Code docs

What's the command to open a new integrated terminal from within the integrated terminal in vscode?

I'm trying to setup a chain of tasks that need a terminal for each one. To do so, I need to use a command that opens a new integrated terminal tab from a previous integrated terminal. Is there any way to do so in vs-code integrated terminal?
In mac I would use
open -a Terminal
Or something like ttab that immediately opens a tab in the current iterm terminal.
Thanks
(edited: I'm looking for a command to type in the terminal, not hotkeys)
Ctrl+Shift+` (Tilda) is the keyboard shortcut to open another terminal on Windows.
Cmd+Shift+` (Tilda) is the keyboard shortcut to open another terminal on Mac.

Integrated Terminal Setting VS Code and iTerm returns zsh

I'm trying to use iterm as my focus terminal inside vscode. I've setup "terminal.external.osxExec": "iTerm.app", but I get zsh instead of iTerm.
I'm able to right click on a file and open in iterm but I love the integrated terminal, and want to use iTerm here.
How do I use iterm as my terminal?
You cannot set iTerm as the integrated terminal for VS Code. I have explained below why.
iTerm is not a shell but a terminal emulator which in your case is running the zsh shell.
I believe you are confusing the terms Shell and a terminal emulator.
iTerm is a terminal emulator. Some examples of terminal emulator are Gnome terminal, Guake, Xterm etc. They provide a display to the shell which is installed in the OS.
A shell is a command line interface that reads and interprets your commands. Examples of shell are bash which comes by default in Linux and other shells like zsh, fish, sh.
Visual Studio Code integrated terminals use the shell itself and not the terminal emulator. In Windows OS the distinction between shell and terminal emulator is not present so Powershell and Command Prompt are both the shell and the emulator.
But for Unix like OSes there is a distinction.
I believe you use iTerm as the terminal emulator and the shell used is zsh (pronounced Z Shell which is a fork of bash Bourne Again Shell).
Here is a wikipedia article on Unix Shell. This talks about what a Unix shell really is.
This link is about Terminal emulators which also talks about the history of terminals.
This link gives a list of terminal emulators
that are available. iTerm is a terminal emulator for Mac OS.
Though you can customize your normal terminal using this
then later remember to go to settings then assign the new configurations to override the default ones
"terminal.external.osxExec": "iTerm.app",
"terminal.integrated.fontFamily": "Meslo LG S DZ for Powerline",
"terminal.explorerKind": "external",
The accepted answer has precisely addressed the question.
Here I will add a side note:
Why do you want iterm2 in integrated shell?
My answer is: I want the "copy on selection" feature of iterm2.
Actually vscode has this setting for the integrated terminal!
Settings > Terminal > Integrated: Copy On Selection
By the way, vscode also allows you to split the terminal, which is like iterm2.

In Visual Studio Code, launch a Console application in an external window

I have a Console application open in VS Code. When I press Ctrl-F5, the output of my program is displayed in a DEBUG CONSOLE window, along with other text.
How do I get Visual Studio code to launch my program in a new console window?
As documented here this can be achieved using this setting:
"console": "externalTerminal"
The settings file is in the solution directory: .vscode/launch.json .
When you're just using Tasks and not Launchers, you can follow the advice here.
For me on Linux, I changed my shell command in VSCode from command to gnome-terminal -e command. That did the trick; that's all I had to do.
Note that if you do this you can get rid of the presentation option set from your task.