Align terminal commands behavior with VSCode

Current terminal behavior is not the same like in VSCode. I think we could improve it and made it more close to VSCode and such behavior will be more usual and comfortable for new users who has some experience and habbits with VSCode.

VSCode Terminal has command “Terminal”(It is located on the menu “View”) and shortcut “Ctrl + `”. Behaviour of this command: if bottom panel is closed than VSCode open it, and create new one terminal. If user call this command one more time then VSCode hide bottom panel. So this command create new terminal only once - if bottom panel has not terminal widget yet. This feature is based on VSCode ui desing: Bottom panel is splited by categories: Output, Problems, Terminal and so on. So all widget are grouped by this categories. And ‘Terminal’ command do one more thing: if you has selected Ouput Category on the bottom panel and launch ‘Terminal’ command, than this command switch bottom panel to the Category ‘Terminal’ and select latest active terminal for You(and even set focus).

I think We could apply categories to the Theia Bottom panel too. I know that Theia has feature: you could move any widget to the another panel. But I don’t think that applying categories to the bottom panel somehow broke this feature in general. What Do You think?

[original thread by Oleksandr Andriienko]

[Sun Seng David TAN]

ok why not if it behave pretty much like Guake. I would call it Toggle terminal visibility rather than just Terminal.

Although I like the idea, I am not sure trying to copy a behavior from one or another IDE is a good idea. If we want to make the best IDE, we have to continuously rethink how we can make it great, greater than VSCode or Intellij. Existing user habits should not be taken into account: if your flow is great, users will adopt it.

What I find important is being able to have multiple terminals and a quick way of accessing them.

On VS Code what I did is that I added shortcuts for each workbench.action.terminal.focusAtIndexX to match ctrl+1, ctrl+2, etc…

This alone makes it so comfortable in my opinion. Also rebound ctrl+q to focus the terminal tab, and ctrl+e to focus the editor back, everything is at finger’s reach.

On Theia, since I rebound widget focus switch to ctrl+alt+(a or d) for the browser, it kinda works but we still lack a quick way to focus one terminal or the other directly, and because they can be moved everywhere in the UI, indexing them will be awkward. In that sense, I do prefer the VS Code way where all your terminals are in one place, making indexing easier maybe.

On the other hand, we could keep both:

  • A terminal widget acting like an editor: move it around wherever your want.

  • A terminal panel stuck in some view, multiplexing several indexed terminals, à la VS Code.

User can just pick whatever he likes.

[Oleksandr Andriienko]

I created issue for discussion https://github.com/theia-ide/theia/issues/4002

This is actually one of the very few areas where I would like to stick to our approach. I could imagine that VS Code will develop into that direction given that the respective ticket is the 4th most reacted-to issue in their repo: