terminal icon indicating copy to clipboard operation
terminal copied to clipboard

Add support for tab tearoff and tab merge

Open DHowett-MSFT opened this issue 5 years ago β€’ 26 comments

I'm repurposing this for tab reordering and demoting it to a Task. We'll track the (much larger) workitem to do tab tearoff as a deliverable for vBacklog. Notes/reasoning:

  • Tab reordering is easy.
  • Tab tearoff requires us to answer the following questions:
    • WT.exe is a multi-instance app. How do we drag tabs between different processes?
      • Should WT be multi-instance? We may want to single-instance it.
        • If we want to single-instance it we need to design "new window" (part of #1051)
    • We still need to design "new window" for tearoff-without-merge because we need a drop target for the old tab.

Originally posted by @DHowett-MSFT in https://github.com/microsoft/terminal/issues/443#issuecomment-501928756

DHowett-MSFT avatar Jun 14 '19 00:06 DHowett-MSFT

also to have a sort of way to manage many open tabs... If I have 3 WSL tabs 1 cmd and two powershells tabbed it get's out of the UI at the right side of the tab bar (so I can't close the last tabs unless I close the first ones).

paradonym avatar Jun 26 '19 18:06 paradonym

This would be so useful. I constantly open new tabs on some focused work, start splitting panes within the tab, and then at some point decide to move the whole tab and panes (right now I just recreate the panes and their directories from scratch) to a new terminal window in a new virtual desktop.

cdmihai avatar Sep 25 '19 21:09 cdmihai

Hi,

Any progress on this? Just wanted to say I find this to be very useful.

Thanks for all your hard work on this product!

adgustaf avatar Mar 23 '20 00:03 adgustaf

Thanks for asking! Unfortunately, there hasn’t been any progress. When there is, this issue will be the first to be updated about it.

DHowett-MSFT avatar Mar 23 '20 00:03 DHowett-MSFT

Thanks for the info! Okay I'll be following this issue :)

adgustaf avatar Mar 23 '20 04:03 adgustaf

I just tried to tear a tab off a window in the Windows Terminal Preview version and was unable to. That led me to searching for this issue.

Here's my use case: I am trying to demonstrate connecting two separate tmux clients to the same session, and running at different window sizes. In order to effectively do this, I need to resize one tmux window to separate dimensions from the other one. Since both my Ubuntu WSL tabs were running in the same Windows Terminal window, I was unable to do this. Hence, I tried to "tear" one of the existing tabs off into its own Windows 10 window.

This is where I got stuck, and had to open a brand new Terminal window instead, and then open up an Ubuntu tab in that window.

The work-around isn't hard, but it's just convenient to be able to tear off existing tabs, just like you can in Google Chrome.

pcgeek86 avatar Nov 21 '20 00:11 pcgeek86

Moving tabs to a different window is important.

I never use Edge, I am a Firefox fan boy (privacy, sharp fonts, amazing dev tools and so on ;-)). But I just tested to move a tab to a different Edge window. It works! Well guys, I am sure you can handle this for Windows Terminal too! =)

xairoo avatar Jan 25 '21 17:01 xairoo

I need this so much.

flipbit03 avatar Feb 05 '21 00:02 flipbit03

Tab tearoff works with Konsole and web browsers which is why I expected this to work.

Interestingly, when I tried it out with other multi-tabbed applications(e.g. Kate) it didn't do it as I expected.

Regardless, it would be useful to drag out tabs to different windows to help organise processes.

opticyclic avatar Feb 15 '21 22:02 opticyclic

Yes, this is an important feature. Please add support. Thanks! πŸ˜„

andgeno avatar Feb 27 '21 23:02 andgeno

I'm curious how many people are subscribed to this thread. Browsers have trained us all how tabs work, and it's really unexpected when a tool like Windows Terminal has tabs but doesn't behave like browsers do. Actually, given this is almost 2 years old, there's also a layer of sadness I and I'm guessing many others feel to see a table stakes feature like this be deprioritized this long.

eriksneff avatar May 04 '21 23:05 eriksneff

Listen here pal. This hasn't been deprioritized, this has literally been my main priority for the last basically 12 months now. I've been researching. I've been prototyping. I've been writing specs. There has been a lot of planning that's gone into this, to make sure it works, and works for all the different scenarios we have in mind in the Terminal. Now that we've got a lot of the other foundations out of the way, I'm finally starting to get close to landing this. So I'd appreciate your continued patience while we work on this.

As always, we'll post here when there's an update to share.

zadjii-msft avatar May 05 '21 00:05 zadjii-msft

"Listen here pal." wow, how condescending. I noticed I had an unknown prejudice against this guy, so looked around for more comments to better inform myself and hopefully change my mind and this is the first one I saw. No need to look further. Holy shit, dude. Get a grip! I may be toxic myself at times (ok, most of the time), but I'm a user. You are a project member and, apparent, MS employee. Just, wow! Take a course on community management or get out of the public eye.

dailytabs avatar Jun 02 '21 21:06 dailytabs

I appreciate that the original comment was worded more strongly and that it may have been a bad day/week for both/either Mike or Erik. I'm also locking this because I want to keep it on-topic -- not to suppress discussion, but because these discussions are never fruitful.

DHowett avatar Jun 02 '21 21:06 DHowett

@zadjii-msft Would you be able to provide a brief update of the progress towards these features? I can see there's definitely been activity and commits where this issue has been referenced but a nice couple sentence paragraph of your progress would be very uplifting. Thanks for your time!

kczx3 avatar Oct 11 '21 15:10 kczx3

More specific details, including my todo list are in #5000. I'm hoping to do the control settings rewrite this release (dev/migrie/oop/ragnarok), and hopefully some of the other foundation work before the end of the year (dev/migrie/oop/infinity-war). Hopefully we can get "move-pane -w <id> to move a pane/tab to another Terminal window" early next year, and followed shortly by tearing actual tabs out. This is still my main priority, just one that keeps getting sidelined by other things that can ship in a single release cycle. We've got the end of the year coming up and things always slow way down around then, and there's some time dedicated in the near future to improving our tooling (which should help accelerate overall code velocity)

zadjii-msft avatar Oct 12 '21 11:10 zadjii-msft

I just tried to drag a tab from one WT to another, fully expecting it to work. And I ended up here! :-) Another big thumbs up from me for this feature, looking forward to it, it will be really useful.

patrikhuber avatar Mar 12 '22 16:03 patrikhuber

ζœŸεΎ…θΏ™δΈͺεŠŸθƒ½ηš„θΏ›ε±•

lipanpan-hub avatar Apr 01 '22 00:04 lipanpan-hub

I hope that this feature will not be limited to Windows 11 and will be backwards compatible with Windows 10. A lot of businesses and users are still on Windows 10 and likely will be for the time being.

MattBDev avatar May 10 '22 22:05 MattBDev

@MattBDev Don't worry, no part of how I plan on implementing tearoff is restricted to Windows 11. Something quite dramatic would have to come up in the next couple months to change that.

zadjii-msft avatar May 11 '22 00:05 zadjii-msft

Still waiting for this feature in August 2022...

paulbrzeski avatar Aug 02 '22 02:08 paulbrzeski

My thoughts exactly...

eriksneff avatar Aug 02 '22 04:08 eriksneff

This is literally being actively worked on. See https://github.com/microsoft/terminal/issues/5000#issuecomment-1185447944 for the latest status update.

zadjii-msft avatar Aug 02 '22 10:08 zadjii-msft

You literally just marked my honest opinion as spam. WTF

eriksneff avatar Aug 03 '22 20:08 eriksneff

This issue was opened 3 years ago. I think community upset over it is justified, and marking that organic discourse as spam is at best flat our wrong, and at worst indicative of a seriously dysfunctional corporate culture at microsoft.

eriksneff avatar Aug 03 '22 20:08 eriksneff

I collapsed the comments because they did not constructively contribute to the conversation at hand. If you'd like to +1 a comment or issue, the best way to do that is to just press the πŸ‘ button. I'm pretty liberal throughout the repo of collapsing any comments that don't constructively contribute to the discussion, especially on a thread with 300 upvotes. Commentary on how we run this repo is probably best directed at a separate discussion rather than in the midst of another thread.

Progress has been made consistently on tab tear out over the last few years (as linked in the broader thread). It's involved multiple huge refactors of the codebase, so it's taken quite some effort. There are also other priorities that have come up, and with our limited engineering resources, we choose to provide consistent feature enhancements to the product rather than lock everything down for a few months to finish this one feature.

The work I've got in the last few branches is very promising, but it needs a lot of polish before we can ship it. If anyone's got any advice or wants to help contribute - the comments at the bottom of #5000 have links to the work in progress, and what still needs to be done. Thanks!

zadjii-msft avatar Aug 03 '22 21:08 zadjii-msft

I am just adding another comment to the fire instead of an issue request.. Make the windows able to be torn off. This is a BASIC function of any tabbed interface. It is the core of a tabbed interface.

The entire predicate of a tabbed interface comes from Microdot's prior unwillingness to provide native support for group windows. Now in this implementation of a Microsoft product, the opposite is true. Why you would utilized a common interface feature and then not implement the actual reason why that feature exists is completely bizarre.

Perhaps the most bizarre about this is that you mention in the original feature request from 3 years ago that this is a multi-instance application. It still is, and it still should be. This aids troubleshooting efforts and minimizes the effort to implement an core function and usability in line with standard UX design recommendations.. The application core functions exactly the same as if you have two open windows or one with two tabs. You nest and run the subordinate shells within the app-x parent thread no matter what.... Every tabbed UX application does this.

Honestly take a step back and look at it from a 1000' view. You are currently working on the function and UX of the most critical application for systems administrators for the bulk of your business. Have you ever tried to identify the root cause of a mail issue with a hybrid deployment of azure and on-prem exchange? It,s not unusual to have 4 screens open at once actively gathering or displaying information.

This issue should be prioritized and there shouldn't be a complaint about it. This team made the decision to revolutionize the method thhat people utilize the Windows shell. For some reason you only read half the book on a UX design. Imagine if Microsoft Launched te chromium version of Edge and didn't implement tear off tabs. How would the general reception of that product go?

Volt-Xoccula avatar Aug 19 '22 22:08 Volt-Xoccula

Thanks for your input.

This issue is well understood and additional community commentary on it has not provided an equivalent amount of additional clarity.

I'm going to lock it for now. If there is additional insight you can provide, I'd love to receive it in a thread that will not notify upwards of twenty people and an unknown number of additional subscribers.

DHowett avatar Aug 20 '22 00:08 DHowett

Amazing, thank you for all the effort for such a long time and congrats for finally landing it! πŸŽ‰πŸŽ‰

saschanaz avatar Mar 30 '23 16:03 saschanaz

Is it supposed to add the "Move Tab to New Window" item to the context menu of the tabs Screenshot_2023-04-06_08-54-54 like Mozilla Firefox Screenshot_2023-04-06_08-55-44 in the context of this task?

Screenshots of Windows Terminal Preview 1.17.1023 and Mozilla Firefox 111.0.1 (64-bit), Microsoft Windows 10.0.19045.2788.

Korb avatar Apr 06 '23 06:04 Korb