Fusing Tabs
The tabs on BeOS windows have been well known for their distinctive sliding ability. This could be extended by allowing extended areas for sliding, sticky tabs and fusing tabs.
Details
Sliding
Tabs should be allowed to slide all the way around the perimeter of any window, including hugging the corners of the window.

Sticking
When placed in close proximity tabs in different windows will snap together, bringing the windows together. When this occurs on the side edges of tabs this would result in an arrangment similar to general tabbed interfaces.

Fusing
When placed on top of each other tabs would combine together and in that fashion couple the two windows together.

Combinations
The strength of this technique lies in the ability to combine multiple windows in a manner more useful to the user.

Issues
- How easy is this for the user to actually work with? Is it more coherent? Or just cool?
- How are tabs separated once stuck or fused?
References
- Tabs - Isn't there more we can do with them?
- Fluxbox can do similar things.

Comments
Re: Fusing Tabs
Why do you want this? I think for every idea there should be an explenation about what problem it solves or what benefit it brings.
Still curious!
Re: Fusing Tabs
The reason why sliding tabs were initially introduced is to allow for easy switching between programs with just one click of the mouse instead of Ctrl+Tabbing or using the Deskbar.
To answer the first question in Issues, it is an interesting idea, but that's about it. I can see no window management problem that it would solve and it would create a couple of its own. Here's my question to ponder: what would make it useful?
Re: Fusing Tabs
Did you consider the readability of the texts on the tabs?
What happens with texts after fusing, for example...and is vertical letter layout a good thing from a usability POV?
Re: Fusing Tabs
I didn't think of even mentioning that, but vertical tabs or ones that bend around a corner... both would be hard to read. When you place the letters right side up, but arranged vertically like this:
f
o
o
b
a
r
It makes it significantly slower because we are not accustomed to reading words that way, and tilting the word sideways is even worse. Can you even imagine this:
---------- | | | Mr. P| ---------|e| |e| |p| |s| |!| -I shudder to think about the headaches this would give.
--DarkWyrm
Re: Fusing Tabs
For the record - I didn't really submit this... I think it was an article on the old site that got "lost" during the upgrade. I do remember copying the content to the new site at some point, thus why I'm apparently the submitter :/
If someone knows who the original submitter was, please let me know and I'll fix the info.
Re: Fusing Tabs
*hands back Urias McCullough's karma
;P
Re: Fusing Tabs
I found the forum post that was supposed to be linked at the bottom of the article (fixed link, btw)
Appears to be something proposed by a forum user on the old phpbb forums, so I changed the submitter to this person. The forum link has some further discussion.
Re: Fusing Tabs
Hi DarkWyrm!
Did you try KDE with the BII window decor and BeOS colours? The tabs do some auto arranging when they overlap. Quite useful but I'd prefer slightly different behaviour.
Yesterday I used R5 and I got annoyed that it raises windows when you click inside them, I use Focus Follow Mouse btw and I really like that you can move windows without raising them to the top which would hide other windows beneath its own. I love the idea to leave the window-stack intact. I know of no other system which handles this as well as BeOS R5 does.
I'd prefer that windows would only be raised when clicked (AND NOT moved) on the tab or border, or with a modifier key anywhere in the window, say alt+Lclick. (alt+Rclick would lower it)
ctrl+Lclick could grab it anywhere and move it (the border is way to thin for that, thank you Mr. Fitt). I also like the feature from KDE IIRC that you can maximize vertically or horizontally depending on the mouse button you clicked on the maximize button, but I rarely use it.
Back to the tabs; I'd like some limited intelligence in tab placing, especially so it would not hide the deskbar behind a tab (I keep my deskbar in the upper-left corner). Also leaving at least a small area of the desktop would be handy because people often have icons on the desktop which they can also use or view by Rclicking on the desktop and have them displayed in a list this way. Too bad you can't open a Tracker window with all the files/icons on the Desktop this way.
Well, I see I ought to write a RFC myself ;-)
Let the comments begin!
Re: Fusing Tabs
I can't say that I've tried KDE with the BII decor and colors because I avoid KDE when I can -- I'm a GNOME person, myself.
Might I ask why you like keeping the window stack intact? I've heard of people liking FFM for this reason, but I can't see why you'd want to. Could you enlighten me? Anyway, IIRC raising a window to the top of the stack when clicking or moving is the default behavior for Windows, Mac, and BeOS, and has been for a while. I would be highly hesitant to change something like that without a *really* good reason. However, it might be worthwhile to use a modifier click or right click to move without raising when FFM is enabled.
Intelligent tab sliding sounds like a nice idea. Wish I'd thought of it. :)
Re: Fusing Tabs
I mentioned KDE so that you could test it's sliding tab behaviour.
Let me reverse your question; why would you not leave the window stack intact?
I'd very much like to have your answer (also from others) to this particular question.
For me because it happens that I eg. have a top most window in which I want to see results and another bigger window in which I do things in which obscures the top most window when I do something in the window beneath the top most one.
If I'd like to see all of the window (ie. raise it), I'd click in it with a modifier key or click it's tab or border.
This is because most of the time, I have multiple windows/apps stacked upon each other at a time because of screen space (1440x900 pixels, 19") but only one or two I'm really working with at a time.
Moving without raising is already possible with R5, with FFM at least, don't know about other methods. Mac OS X can do it as well when you hold the apple key or the 'other apple specific' key.
To go back to the subject, why are there now tabs in IE7 and FireFox?
For me it is handy because I can quickly launch sub-windows-in-tabs in the background without immediately having to pay attention to them. (If the interent was fast as light maybe I wouldn't have to wait and thus wouldn't need tabs so much)
Re: Fusing Tabs
I mentioned KDE so that you could test it's sliding tab behaviour.
Ah. I see. :) I think I'll look into that at some point.
Let me reverse your question; why would you not leave the window stack intact?
I'd very much like to have your answer (also from others) to this particular question.
Simply put, because you want to work with that particular window and be able to see all of its content and controls.
Perhaps the debate comes from personal preference: some people like to multitask and others would rather work on one task at a time. I've also noticed that the tendency to use more than one program at a time increases with the skill level of the user. I work with people who are beginners or slightly skilled with computers and the habit is to close one program and then open another. I, OTOH, tend to have at least two programs going. Four as I'm typing this. I also normally run each program maximized, even on my 19" 1280x1024 LCD at home. Pretty much the only time I have two or more windows open and I switch back and forth between them is when I'm coding. Sometimes I'll have a couple windows stacked on top of each other and I'll flip back and forth by right-clicking on the tab.
Moving without raising is already possible with R5, with FFM at least, don't know about other methods. Mac OS X can do it as well when you hold the apple key or the 'other apple specific' key.
Didn't know that. Thanks for the tip. :) 'll have to experiment with that.
--DarkWyrm
PS. I do the exact same thing as you for Firefox's tabs. US broadband is still too expensive for a decent-sized pipe. :/
(edit by admin: fixed ending quote tag)
Re: Fusing Tabs
And there you have it... regularly I don't need to see all of its content and controls because I know the program I'm working with.
Re: Fusing Tabs
Whew, old forum post come back to hount me :) .
The original post was exploratory to see if those existing tabs could be extended in usefulness. Imo getting tabs to stick together in combination with sliding tabs (only on top of app) is the only thing of those which are really useful: group together some programs in a single 'window'.
Say you're working on a text document with some pictures, you could group together the word processing and image editing as a single window, even minimizing them as a single 'project'. This is similar to tabbed browsing, but extends across apps to 'tabbed projects'
Re: Fusing Tabs
I didn't think of even mentioning that, but vertical tabs or ones that bend around a corner... both would be hard to read. When you place the letters right side up, but arranged vertically like this:
f
o
o
b
a
r
It makes it significantly slower because we are not accustomed to reading words that way
--DarkWyrm
Vertical text is NOT hard to read, in fact over a billion people reads vertical text every day (in china, Japan etc).
I
s
t
h
i
s
r
e
a
l
l
y
t
h
a
t
h
a
r
d
t
o
r
e
a
d
?
Re: Fusing Tabs
That's not the point, Darkwyrm clearly said that it is slower, people in the EU and US are not used to read vertically, you have a point in that it would be very useful and natural for people from Japan, China like you mention.
Seeing things from this viewpoint I think vertical tabs could prove a major benefit for people accustomed to vertical reading.
Re: Fusing Tabs
I could easily see Fused Tabs as being a VERY valuable tool. In the same way that tabbed browsing is very valuable for my browsing needs, fused tabs could be very useful in the same way across applications. I am thinking in a more limited scope than the original post. I do not want to be able to wrap the tab around corners or put the tab on the sides or bottom, only on the top. Here is how I see it working:
A user could have several applications that they plan on using at a time on a single workspace. The user would set the size of the window they want to work with on their primary/parent application (this application would be the left-most tab of the fused applications). Once the window size is set for the parent application, the user could grab the tab of the child application window and bring the tab close to the right side of the parent application's tab. When the user lets go of the child application's tab, it would snap into place to the right of the parent application's tab and the child application's window size would resize to match the parent application's window size. The user could continue to snap on window after window and they would snap in place and resize. To UN-snap a tab, the user would grab the tab and move it away (to the right) from the parent tab and let go OR there could be an UN-snap icon (maybe that looks like something breaking) that would move the child window up and to the right if clicked. If needed, you could also add re-order functionality so that if the user grabs a child tab and moves it left or right, near the intersection of two other tabs and lets go, the tab they were holding will snap into place between those two tabs.
When would I want to use this functionality. If I was doing some work but also interesting in lurking in an IRC room or waiting for an email. I would open Vision and set its size then open Firefox and snap it in just to the right of Vision and log into Gmail to wait for my email. I would also start my IM client and snap it into place next to Firefox just in case my kids IM me and I need to respond quickly. Then I would start up my word processor and snap it into place after my IM client. Now I can be typing my document in my word processor while I monitor my IRC, eMail, and IMs. If I received information on any of the other windows, that application's tab would slowly pulse from one color to another to let me know that it needs my attention. I could easily multi-task across applications instead of just in a single application like a tabbed browser window.
So, what do you think? I could throw together some mock-ups if you would like that, too.
Re: Fusing Tabs
Sounds very good. Two details come up:
-The slow pulsing from one colour to another...what would the second colour be? How quick a pulse? (Slow is good, probably). How to prevent multiple pulsing tabs next to each other from becoming a visual Las Vegas style annoyance?
-"to un-snap, move it away (to the right)". Make that 'to any direction'...offering the most freedom possible is a good idea here.
Hoping for some mock-ups!
Re: Fusing Tabs
Vertical text is NOT hard to read, in fact over a billion people reads vertical text every day (in china, Japan etc).
Vertical text is not used in software graphics interfaces in Japan (if it is, it's the exception to the rule). I am quite sure this is the same in China. So you would have to convert quite a number of people before you can use this argument. :)
FWIW.
Re: Fusing Tabs
OK, I quickly built a mock-up of what four apps fused together might look like while the user is working on the far right app and receiving notification from the second app (Jabber). The mock-up looks best in Firefox, it is a little off in IE.
http://www.serpentor.net/haiku/mock-up1.php
Meanwhile you mentioned:
what would the second colour be? How quick a pulse? (Slow is good, probably). How to prevent multiple pulsing tabs next to each other from becoming a visual Las Vegas style annoyance?
Wouldn't it be nice if it was green or burnt orange (Haiku colors) by default but you could change it to a color you might enjoy more (or can see easier)? Again, it may be nice to have the ability to determine how fast/slow it pulses to suit your needs/likes. Yes, the Las Vegas effect is a possibility if you are a active user.
Make that 'to any direction'...offering the most freedom possible is a good idea here.
Yes, a good idea. The only directions you can't go would be between two other tabs or next to the outside of an end tab where it would snap the tab in place at that point.
Re: Fusing Tabs
Indeed, total 'configurability' (what a word) is the solution...I think your concept would be a great addition to Haiku. Thanks for the convincing mock-up!
Re: Fusing Tabs
You know what? I didn't believe that it could be good for anything but now that I see your mockup, which altough simple is great btw, I can see the benefits, now, why should all the windows snapped together be the same size?
For me personally I think it would suffice if the tabs would be aligned the same way they are snapped together now, that when I maximize or otherwise obscure a window underneath I can still see it's tab, or maybe; just make sure I always see a tab! (when possible).
There should be constraints about the width of tab, Firefox will happily put the whole darn title into the tab and thus make it as wide as the window itself; a title bar :-(
Re: Fusing Tabs
Serpentors suggestion is exactly what I would like to see in future Haiku revisions regarding tabs. When I code I like to switch back and forth between a terminal and an editor that I would like to stay grouped together on the screen. I'm sure web designers would also find it useful to group an HTML editor and browser into one tab group and there should be many other similar scenarios.
However, I think the concept of notification is not necessary related to tab merging. There is no general way for the window manager to know when an application has any updates that would require notification (tab pulsing / color change). But an IRC / IM application would of course need an API to call to trigger this.
It would be nice if this could be the Haiku way of using tabs, which would replace the tabs used inside applications like Terminal and the future WebKit-based browser. A menu choice for "New tab" in these applications would then open a new tab attached to the current window.