Terminal: Drag & Drop Tabs to create a Pane

Created on 14 Feb 2020  路  16Comments  路  Source: microsoft/terminal

Description of the new feature/enhancement

The current way of splitting panes using written commands or shortcuts is awesome but difficult to discover.
There is already some drag & drop support for reordering tabs. It would be awesome to be able to drag & drop a tab to split a pane in the previous tab. An exemple of user interaction sequence:

  • Open Windows terminal: it shows a single tab with a single pane with powershell
  • Hit ctrl+shift+3 to open a ubuntu tab
  • drag the ubuntu tab > it shows me the previous tab (powershell)
  • using my mouse I can move the ubuntu tab into sensitive zones an preview the resulting split (a bit like Visual Studio/code UI)
  • I can then drop, and get a nice splitted pane.

Optionally, show a popup saying "Want to automate that ? click here to copy an automation script to your clipboard", which would copy a script that would do the same thing.

Proposed technical implementation details (optional)

Well, I am sure it is possible to do that by writing some code :)

Area-User Interface Issue-Feature Product-Terminal

Most helpful comment

I thought about filing a separate issue but decided to comment on this one instead. In the web browser world it is now assumed that users can drag tabs out of windows, back into windows, etc. This tearing off of tabs is an essential and elegant tool. The Windows Terminal should copy this UI paradigm. That is, in addition to being able to drag tabs to rearrange their order, and drag tabs to create panes, users should also be able to drag panes to other terminal windows, or drag them out to create new terminal windows.

All 16 comments

In this context, hard to discover means also "easy to forget"

Thanks for the suggestion! This is actually already being tracked by another issue on our repo - please refer to #992 for more discussion.

/dup #992

Hi! We've identified this issue as a duplicate of another one that already exists on this Issue Tracker. This specific instance is being closed in favor of tracking the concern over on the referenced thread. Thanks for your report!

@zadjii-msft I don't think it is a duplicate. #992 only talks about resizing the panes, not for merging tabs into a multi-pane view by drag and drop.

D'oh, yea okay reading this more carefully (and with more coffee), I see what you mean. Yea this definitely isn't a dupe. Sorry about that!

I thought about filing a separate issue but decided to comment on this one instead. In the web browser world it is now assumed that users can drag tabs out of windows, back into windows, etc. This tearing off of tabs is an essential and elegant tool. The Windows Terminal should copy this UI paradigm. That is, in addition to being able to drag tabs to rearrange their order, and drag tabs to create panes, users should also be able to drag panes to other terminal windows, or drag them out to create new terminal windows.

I actually really like the WPF/Visual Studio tab hover/drag/drop controls. I'd love to see us implement something like that.

(I thought they were obnoxious at first, but now that I'm older and either more or less opinionated, I find them "usable" :grin:)

@randomascii I realized I never saw your comment. We've got an issue tracking tab tearoff/window merging, and we're evaluating it for the post-v1 timeframe. That's over in #1256!

Just to add my +1, I could have sworn that I saw that you could split tabs - I spent a long time trying to figure out how to do it and gave up. Only figured out how to do this when I read the settings file and saw there was a shortcut for it. I also like VS approach and was my first attempt at splitting panels (note: I work on VS, I am biased).

From @schuelermine in #6291:

Currently, dragging a tab allows you to rearrange the tab order.

I suggest that it should also be possible to adjust panes this way. Please see the attached image.

Dragging a tab onto a seam between to panes or near the edge of a tab should create a new pane there and place the tab in there. It should also be possible to swap a tab and a pane by dragging onto the center.

The upper-right example is dubious, as it requires the addition of a draggable icon to every pane. It has been greyed out to clarify this.

pane-rearrangement-illustration-wt-3 edited

I would very much prefer if panes also had a tab indicator, maybe grouping panes in consecutive tabs marked with the same color to mark a pane group, or a single "fatter" tab with some markings from each contained pane. Clicking on the "sub-tab" could directly bring that pane to focus.

But I can work with just drag-drop-able tabs / panes. 馃榿

@zadjii-msft I've made a slightly better version of that mockup, you might want to replace that image with this one: https://drive.google.com/file/d/1h6YLEPTmdB0woqNMep-npFMqTEJGY3HX/view?usp=sharing

image

Meh, I'll just upload the new version here, that's easier 馃槈

Please don't forget the drag out to create new window, like browser tabs do. It's very quickly and easy when you have more than one screen.

I'd like to vote this feature up by describing important use-case.
That feature is more than only cosmetics or "mouse-friendly" way to split tab vs keyboard-only. The main point of that feature for me is moving existing tab (session) with all context into split view.
Every now and then I find myself working in several tabs with several servers, multiple sessions to one server, different virtual environments, opening different files and applications, and then thinking "this is it! I have to view that session side-by-side with that one". And it takes time to recreate the session again in a new empty split pane. Sometimes it may take so much time that I keep working in different tabs constantly switching (like, logging to some server, optionally through an intermediate server, executing some actions, waiting for results, etc).
To be honest, I almost never know I will need split-tab before I have some active sessions I'd like to split. It may (should) be problems with me planning the work, but so it is, and I think that problem is pretty common. 馃槈
Also, the need for the split view is sometimes dynamic, when at one point you need session1 + session2, than session1 + session3, than session2 and session3 and so on, so you can't work this around by planning layout in advance or sacrificing screen space to split view everything you may need.

Was this page helpful?
0 / 5 - 0 ratings

Related issues

ghost picture ghost  路  3Comments

xmm1989218 picture xmm1989218  路  3Comments

mrmlnc picture mrmlnc  路  3Comments

NickITGuy picture NickITGuy  路  3Comments

ghvanderweg picture ghvanderweg  路  3Comments