-
Notifications
You must be signed in to change notification settings - Fork 29.6k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Extract the integrated terminal #34442
Comments
Hint, hint, call the thing VSterm? |
This is an idea I've thrown around a bit, I doubt we'll get time to work on it any time soon. The first steps for this would be more flexible movement of the panel inside the workbench and pulling it into its own window. |
You should check out https://hyper.is/, also Electron based and extensible. |
@auchenberg I definitely know about Hyper ;) yet Code's implementation is currently much more solid though, and given each one's track record in stability and performance I'd rather bet on Code. Also having the external terminal and Code's integrated one behave in exactly the same way is a non-negligible feature. |
@lloeki Hyper is migrating to xterm.js build by @Tyriar, which means that Hyper most likely will be similar to the VS Code console. I can't speak on behalf of @Tyriar, but to me it sounds like most of the concerns are addressed by this migration. vercel/hyper#1275 |
Yes Hyper is planning on moving to xterm.js for v2. There will be some differences such as configuration and some things are handled differently (clear in Hyper may not work on Windows for example), overall it will be very close to VS Code though. |
I can't speak for v2 but the last time I tried Hyper it was really slow & buggy, especially under Windows. VSCode's terminal implementation worked so good that I don't use cmd.exe anymore. I understand it's not the priority but if I was to try to extract VSCode's terminal and make it run without VSCode where should I start? |
@warpdesign what I was thinking was to be able to launch the terminal by itself using
Before starting any of this it would probably be wise to get buy in from the team though (and it's not a priority yet so I wouldn't do this yet). |
@Tyriar Ok. I'll wait then. |
I use the most recent canary and for me it becomes really slow and buggy (disappearing texts, frozen windows and so on) as well, while the terminal in VS Code seems to work really good in everything I tried so far. (Also the copy'n'pasting behavior there seems to work better for me.) Therefor I'd 💕💕💕 to see the VS Code terminal as a stand-alone application as well.
Are there small steps we can do to slowly iterate to this point? |
It would be a lot easier if something like this landed in Electron electron/electron#11501, that would allow sharing all the services across multiple windows. Without that, it's hard to think of smaller steps we could take as everything is a pretty big task that might be throw away if the team doesn't like it. We could try put together a proof of concept in some branch which hacks together the terminal and necessary services, launching via I'll be moving on with splitting soon which is kind of a prerequisite to this anyway, we wouldn't want a stand alone terminal that couldn't show more than one instance at once. #7504 In the meantime I recommend hooking up a keybinding to toggle maximize on the panel if you haven't yet https://github.com/Tyriar/dotfiles/blob/7cdd4a9838a0cdec4508a1e484fc603f58c9e1c3/modules/vscode/config/keybindings.json#L19, I use it all the time 😃 |
This looks like a sound strategy.
Even as a proof of concept, tmux would make this already very useful for me! |
Still, it's just another thing that will make it even better as this is something on the roadmap that is definitely coming soon 😃 |
I'm glad this is being worked on. The integrated terminal in VS Code is the best terminal on windows and I would love to be able to use it as a standalone app. |
+1 |
I find that Hyper isn't well supported on Windows. The integrated term in VS Code is the best implementation that I have found and it would be great to be able to use the same terminal everyone that I use a command line. Of course, Windows 10 needs a feature to allow the built in terminal to be replaced by a custom terminal. |
This is a little higher priority for terminal users now that Sets was pulled from Fast Ring Windows 10 builds. Sets clearly has a long way to go - starting a new tab was a slow process of opening the new tab, waiting for edge to start (if it didn't crash) and then searching for the app you wanted to start (another powershell, duh). So right now, tabbed terminals is: wait for a bunch of bugs to be fixed, wait for Windows builds to include those fixes, wait till you can install a Windows build with those fixes. This may be years. Having a VSTerm would give us something we know works. 👍🏼 |
#40829 has been marked as a duplicate, but I think they are 2 different concerns.
The benefit of the |
@huafu I'm trying to keep the issue count down, there are several issues relating to this and this is how I see them:
Once both of those are implemented you would naturally get the functionality you're after for free. |
|
@iFwu reopened that issue to get clarity there, it should be using the same file. |
Well, you can do something like this: hk9SDjelsO.mp4It isn't exactly seamless though. |
Darn, that repo just got archived a few days ago |
One thing people can do to get the VS Code terminal as a "standalone" terminal is as follows:
Note 1: Zen Mode makes the window full screen, but if you exit full screen, you should still get the right view. |
@TrentDevelopsMS we wouldn't want to ship a sub-par version that needs to load the entire workbench as we'll inevitably get complaints about memory usage. Plus, you can essentially do that already by creating a new workspace and maximizing the panel, it's just a little less convenient. |
Any news? Is this issue on any roadmap? That's how much I love the VS Code terminal, and I think I'm not alone, it's simply fantastic. |
@PhilParisot this is the official roadmap which will probably get an update soon. It's not there yet but I expect it will be within the next 1-2 years. Intellisense in the terminal (#171648) and leveraging shell integration smarts in other ways is current big focus for the terminal right now. |
By the way, I think something like a new CLI flag would be more than enough:
Which opens the VS Code window with the terminal maximized, and panels collapsed. |
@felipecrs, I'd make it |
I think the main draw of extracting the integrated terminal (over using a standalone terminal application, even on which shares a codebase with VSCode) is the ability to preserve long-running operations when switching workspaces. If I start a script in one workspace then want to switch workspaces, it closes that terminal. I'd like to be able to pop-out the attached terminal and change workspaces without stopping that shell. |
@jasondamour FYI you can run the detach session command and attach session in the other window, or just drag it over before closing the old window https://code.visualstudio.com/docs/terminal/advanced#_moving-terminals-between-windows |
Request to close this issue. It mixes up two completely separate concerns: Out of these, (a) is really not vscode's problem, which is why this issue never moves forward. OTOH, (b) is a much-needed feature that never gets discussed, because all feature requests that mention it are marked as a duplicate of this issue and closed (e.g. #188682). |
@zocky this (a) has been on my short list of things I'd really like to do for a while. B is tracked in the highest voted issue on the repo. If we closed this, a new issue would come up and it would take years to get the votes again...? There's clarification as to what this issue it in the top comment. |
@Tyriar 감사합니다 잘하셨어요 ㅋㅋ |
@sunglim 오랜만이에요! 👋 |
We can now open a terminal as an edutor tab, and move editors into floating windows. |
yep. already wrote this up in my answer to the linked Stack Overflow question along with keyboard shortcuts to help with it. |
"Feature" request.
The integrated terminal grows in functionality, to the point that it could soon become very useful standalone, as its own app. I'm only a casual VScode user (using vim most of the time), but I would definitely be interested in a well-behaved, consistent, reactively-configurable, multi-platform terminal not tied to the editor.
Obviously if such a situation were to unfold, the shared component (not entirely dissimilar to VTE) should be jointly developed and shared with VScode. Both could be able to leverage a common configuration so that whether a terminal leveraging such a theoretical common component is spawned within VScode or standalone, they behave the same.
Edit from @Tyriar:
There is some confusion about the scope of this issue, here is the clarification as the thread is long:
code --term
for example (see Extract the integrated terminal #34442 (comment) for details)The text was updated successfully, but these errors were encountered: