Side Tabs: Prototyping An Unexpected Productivity Hack
darrinhenein.com
darrinhenein.com
[0] https://addons.mozilla.org/en-US/firefox/addon/tree-style-ta... [1] https://chrome.google.com/webstore/detail/sidewise-tree-styl...
https://addons.mozilla.org/en-US/firefox/addon/firetitle/
You can flexibly add text to the title bar of each window to name the window as you choose. These names show up in Aero Peek etc. to make switching between windows effortless.
TreeStyleTabs, FireTitle, and a few other FF extensions are what keep me firmly in the FF camp. Its extensibility is the best of all the browsers IMHO.
On my 1366x768 laptop I use auto-hide[0] so as to not lose too much screen real estate.
Of course, I still use it. Better weird-looking tabs than non-vertical, non-nested tabs at all.
That said its not convenient on small screen resolution. Its fine on fullhd+.
Oh, that sounds very much like BS. "non tech saavy" users have been using hierarchies in computers since before Windows 95 (considering people that used MS-DOS as 'tech saavy' users). DOS/Windows folders were presented in a structure; File Explorer presented stuff in a structure manner. Hell, the "my documents" folder was structured... and even Gnome (the epithome of doing simple interfaces) presents folders in a structure manner.
If your computing experience is limited to iOS for example, chances are you'll never even have seen a nested tree view control, much less understand the hierarchy behind it.
At least just read a minimum on usability and UX, before being so rude as to "call bullshit" based on your own personal opinion.
I'm glad it's getting more popular but surprised it's taken this long. It makes more sense to use horizontal space on a widescreen monitor.
Omniweb was great back in the day, it's too bad it's no longer around.
Now with OS X 10.9 support!
Link: https://github.com/darrinhenein/VerticalTabs/raw/master/rele...
There are lots of addons that are, at least in part, distributed as blobs from github
It's not watertight (as the recent abuses in the chrome web store illustrate), but it's better than nothing.
It makes absolutely no sense to use up vertical space on wide-screens (which everyone now has) on tabs that then have to collapse, stack, or shrink when we could take advantage of all that white space left and right of the content to list all the tabs including labels and even add a few more pixels of vertical space.
It's so baffling to me. I don't understand it.
EDIT: Can find older versions to check it out here (Appears as 12.17 is the last version which had this): http://www.opera.com/download/guide/?os=windows&list=all. You simply right click the tab bar and it has place> top/left/right/bottom.
I use Firefox now, and couldn't survive without Tree style tabs, although I still miss a significant number of features from Opera, although from what I gather, they basically thrown away most of it and now have not much more than a clone of Chrome. This is baffling to me too - current Opera is a clear regression from what they had 5 years ago.
Does anyone know of a nice looking version of this for Chrome?
https://chrome.google.com/webstore/detail/tabs-outliner/eggk...
- There is a pretty popular Firefox extension called Tree Style Tabs, by "Piro". It is awesome, it is actively maintained, it works great. It has around 100k active users.
- Some time later, "philiKON" (Philipp von Weitershausen) made a smaller extension that just shows tabs vertically. "It is heavily inspired by and borrows ideas from the excellent Tree Style Tab add-on", its page says. I used it for a while, but it fell into disrepair and I switched back to TST. Vertical Tabs has around 5k users.
- Finally, "Vlad" made a fork of Vertical Tabs to fix it up a little, since philiKON had abandoned it.
So who does Mr. Henein credit? Mainly himself and his colleague Vlad. Vlad is credited as the author of Vertical Tabs at the beginning of the post, although what he was not "something [Henein]’d be willing to trial" (ouch). It needed Henein's touch to "bring this add-on to a level where users would find it delightful and usable enough to at least give it a fair shot."
But still, he does credit his pal Vlad for doing most of the work, and even throws in a mention of von Weitershausen in the middle of the post, without explaining what he has to do with Vertical Tabs.
No mention at all of Piro or Tree Style Tabs, even though it was the inspiration of Vertical Tabs, and to this day is used by orders of magnitude more people. In fact, its existence seems to be intentionally removed. "The hypothesis I was hoping to validate was that there was a subset of the Firefox user base that would find value in the layout that Side Tabs enabled. I wanted to bring this add-on to a level where users would find it delightful and usable enough to at least give it a fair shot." I would say that TST, its over 2 million downloads over at least 7 years, and its 100k active users validate that hypothesis pretty well.
I think this is a pretty shoddy way for Mozilla to treat a member of its community. There is an add-on that introduced all of these ideas to Firefox, is well-known and appreciated by Firefox power-users, and has been tirelessly maintained for seven years, yet they go and act as if "side tabs" (he even slipped his own new name for it in there) were some amazing new area of cutting-edge experimentation, while giving a hat tip to a derivative of a derivative of the original extension.
And then all the flowery rhetoric: "This is how great things are built; rarely from scratch, but more commonly on the shoulders and brilliance of those who came before you." "I’ve had great response on Twitter from developers and users who love the add-on and who can’t wait to share their ideas and thoughts. It’s awesome to see ideas take shape and grow so organically like this. This is collaboration."
Maybe I'm crazy, but the whole thing just rubs me the wrong way.
I don't see anything wrong with crediting where he found his inspiration. There's always a chain to these things, presumably TST wouldn't exist without Firefox, which wouldn't exist without IE or Netscape, which... which wouldn't exist without the wheel... fire...
On top of that, Mr. Henein is a Mozilla employee and has several colleagues who are also working on vertical tabs (he mentions Vlad, but also Stephen Horlander, one Hayden, and there are others who are not mentioned by name). Basically, there is a group of people at Mozilla who is (finally, after seven years) looking into officially supporting vertical tabs. How likely it is that none of them has ever heard of TST, or found out about it while researching this feature? I'd say it defies belief.
It takes active, deliberate effort for Mozilla to ignore the community's efforts in this field. It is certainly more satisfying to a designer's narcissism to pretend that he (with some help from his pals) is bringing forth a bold new creation, but it is an especially egregious attitude to take for a community-based organization like Mozilla.
[1] http://jonaquino.blogspot.com/2007/09/firefox-extension-vert... [2] http://www.sidewise.info/
So many "modern" user interfaces are such cargo cult carbon copies of each other (like tabs along just the top edge, or that way "flat" is such a big fad these days), that it's easy to get the impression that anything slightly different is actually original.
Back in the day, we had no choice but to draw "flat" user interfaces, because all we had was black and white, and moving the cursor across the screen was uphill both ways!
http://dknite.files.wordpress.com/2010/10/firefox-fennec-mob...
I am going to try an add an auto hide. Right now I have the tab bar at 50px. When I hover over it with a delay I would be nice to expand.
http://wayfinder.co/pathways/53998ffd774fd817001977ef/falseh...
On it in Chrome I normally browse the web in portrait mode and I can see the titles of about three tabs, but only a few words of each. With a slide out side panel on the left (activated by dragging left to right from off the screen onto the screen) I would be able to see the titles for 15 or so tabs, with larger press areas and close buttons.
I realize for every tab switch this would require a swipe and a click, but as it is now the tab is often not one of the three visible and so I already have to swipe multiple times across the tab bar to see the tab before clicking it.
Tabbed window manager with pie menus for The NeWS Toolkit 2.0, from 1991: http://www.donhopkins.com/home/movies/TabWindowDemo.mov
NeWS PostScript source code: http://donhopkins.com/home/archive/NeWS/tab-3.0.2.ps.txt
Here it is in Lisp for Genera: http://www.donhopkins.com/drupal/node/103
And in Forth for X10: http://www.donhopkins.com/home/archive/piemenu/uwm1/hacks.f
Pinned tabs should have a visual distinction, rather than only being pinned to the top. An icon, badge, or subtle change in background shade would work.
Looking good!
But why restrict yourself to the top edge, the bottom edge, one side or the other, when you can allow the user to drag the tabs around to any place along any edge that they want? I am perplexed that all tabbed user window frames don't allow this useful and obvious feature, after all these years.
Also, tabbed windows work very nicely with pie menus, and tabbed frames plus pie menus are an excellent combination for window managers and web browsers.
I implemented side tabs in a commercial product in 1988, for UniPress (Gosling) Emacs 2.20 running on the Sun NeWS and SGI 4Sight window systems, and I used them for the HyperTIES hypermedia browser and authoring tool that I developed with Ben Shneiderman at the University of Maryland Human Computer Interaction Lab.
HyperTIES Hypermedia Browser and Emacs Authoring Tool for NeWS HyperTIES is an early hypermedia browser developed under the direction of Dr. Ben Shneiderman at the University of Maryland Human Computer Interaction Lab. http://www.donhopkins.com/drupal/node/101
Designing to Facilitate Browsing: A Look Back at the Hyperties Workstation Browser By Ben Shneiderman, Catherine Plaisant, Rodrigo Botafogo, Don Hopkins, William Weiland. http://www.donhopkins.com/drupal/node/102
Here's some stuff about it from Wikipedia:
https://en.wikipedia.org/wiki/Tab_(GUI)
The NeWS version of UniPress's Gosling Emacs text editor was the first commercially available product to pioneer the use of multiple tabbed windows in 1988. It was used to develop an authoring tool for the Ben Shneiderman's HyperTIES browser (the NeWS workstation version of The Interactive Encyclopedia System), in 1988.[2][3] HyperTIES also supported pie menus for managing windows and browsing hypermedia documents with PostScript applets. Don Hopkins developed and released several versions of tabbed window frames for the NeWS window system as free software, which the window manager applied to all NeWS applications, and enabled users to drag the tabs around to any edge of the window.[4] HyperTIES was a "hypermedia" browser, a term first used by Ted Nelson in 1965. The first "web" browser came out later in 1990,[5] and the term "World Wide Web" was not invented until 1990.[6]
HCIL Demo - HyperTIES Authoring https://www.youtube.com/watch?v=hhmU2B79EDU
Here's another different application of tabs that I developed on NeWS, a visual PostScript programming interface.
The Shape of PSIBER Space: PostScript Interactive Bug Eradication Routines Written by Don Hopkins, October 1989. University of Maryland Human-Computer Interaction Lab Computer Science Department College Park, Maryland 20742 http://www.donhopkins.com/drupal/node/97
Also, here's a video of an even more general implemented of tabbed window frames with a pie menus based window manager, that I implemented at Sun Microsystems for The NeWS Toolkit 2.0:
http://www.donhopkins.com/home/movies/TabWindowDemo.mov
Here is the source code in PostScript for a few different implementations that I gave away for free back in the 80's and 90's:
This is the original version for NeWS 1.1 that shipped with UniPress Emacs, and that I used for the HyperTIES hypermedia browser and authoring environment, which is demonstrated in the video at https://www.youtube.com/watch?v=hhmU2B79EDU :
% Tab window class http://donhopkins.com/home/archive/NeWS/tabwin.ps.txt
This is the PSIBER Space Deck for NeWS 1.1, which uses its own form of tabbed sub-windows whose tabs you can drag around to any edge, described in this paper http://www.donhopkins.com/drupal/node/97 : http://donhopkins.com/home/archive/psiber/cyber/litecyber.ps...
This is the first version I implemented for NDE 1.0 on X11/NeWS while at the University of Maryland:
% NDE Tab Frames % Copyright (C) 1989 % By Don Hopkins, University of Maryland Human Computer Interaction Lab % May 13 1989 http://donhopkins.com/home/archive/NeWS/tab-1.ps.txt
This is the second version I implemented for NDE 1.0 on X11/NeWS while at the University of Maryland:
% tNt Tab Frames, release 1.0 % Copyright (C) 1990 % By Don Hopkins, University of Maryland Human Computer Interaction Lab % Started, May 13 1989. % Reimplemented mostly from scratch for X11/NeWS FCS. http://donhopkins.com/home/archive/NeWS/tabframe-1.ps.txt
This is the final version I implemented for The NeWS Toolkit 2.0 while at Sun Microsystems, which is demonstrated in the video at http://www.donhopkins.com/home/movies/TabWindowDemo.mov :
% Tab Windows for the NeWS toolkit % Version 3.0.2 % This file implements a pie menu tab window manager for the NeWS toolkit. % It should work with TNT2.0fcs on OW2.0fcs and TNT3.0beta on OW3.0beta. % This code and the ideas behind it were developed over time by Don Hopkins % at the University of Maryland, UniPress Software, and Sun Microsystems. % Pie menus and tab windows and NOT patented or restricted, and the % interface and algorithms may be freely copied and improved upon. http://donhopkins.com/home/archive/NeWS/tab-3.0.2.ps.txt
I also implemented a tabbed window manager for X11 based on "uwm", which I can't find a link to right now.
And at Sun we developed but never released a really nice extensible window manager with tabs, pie menus, rooms, virtual desktop, and other cool features, that managed both NeWS windows and X11 windows:
http://www.art.net/~hopkins/Don/unix-haters/x-windows/i39l.h...
Some notes about OWM
OWM is the "Open Window Manager" we prototyped in NeWS. We enhanced the NeWS window frames so they sported indexing tabs, pie menus, rooms, and a scrolling virtual desktop. Many of our enhancements were separatly developed, and plugged together orthogonally like legos. All NeWS applications could use these fancy frames, and the Open Window Manager wrapped X clients in the same frames that NeWS windows got!
This way, factoring the window frames out as a part of the toolkit, and implementing the X window manager separately, NeWS applications don't have to know a thing about X window management, and X clients can go on doing the same nasty things they've always done, and everybody get the benefits of dynamic extensibility, and a consistent user interface, by using the default window class!
I39L window management complicates pinned menus enormously. TNT menus pin correctly, so that when you push the pin in, the menu window simply stays up on the screen, just like you'd expect. This is not the case with XView or even OLWM. Under an I39L window manager, the Open Look pinned menu metaphor completely breaks down. When you pin an X menu, it dissappears from the screen for an instant, then comes back at a different place, at a different size, with a different look and feel. If you're not running just the right window manager, pinned menus don't even have pins! There is no need for such "ICCCM compliant" behavior with TNT menus. When they're pinned, they can just stay there and manage themselves. But were TNT windows managed by an external I39L window manager, they would have to degenerate to the level of X menus.
Under the OWM solution, pinned TNT menus work correctly, and they inherit their pinned window behavior from ClassPopupWindow, the same class managing pinned X menus. The look and feel is high quality, consistant, maintainable, and intentionally extensible.
If I39L window management has such a negative impact on pinned menus, how else will it impact other parts of the toolkit and applications?
Will it effect popup notices? Since they need keyboard input for the buttons, will they have to play the I39L window management game? How do we get the notice tail (a separate canvas) to line up, if the window manager decides to wrap a frame around the notice window?
It is impossible to know how it will effect TNT applications, because the toolkit was specifically designed to be subclassed and extended in areas that overlap with I39L window management. NeWSRoom and the TNT virtual window manager are examples of simple, interesting extensions to the window class that are in direct conflict with I39L window management. We would be giving up a lot of actual and potential functionality, that we designed the toolkit to support in the first place. We need to redesign the window class for greater flexbility and easier subclassability, but those goals are at odds with I39L window management. The result of a cross of these two opposing goals would be massivly complex and would sacrifice most of the important advantages of the TNT approach. However, the OWM approach to window management, wrapping X windows in instances of the TNT window class, synergizes with extensions to the window classes. As an extreme example, you can make OWM wrap window frames with title tabs that pop up pie menus full of handy window management functions around all your X windows.
There are several other technological advantages of managing X windows internally with NeWS, over managing them externally with X. By an external window manager, I mean one that is in a separate address space as the windows. Relative to the server, all windows are internal, all X "Xlib" and NeWS "wire service" clients are external, and NeWS canvas objects and light weight processes are internal. But an external X window manager is in a different address space must try to manage many shared resources at a distance, an intrinsicly difficult task, imposing limitations on the whole system and unavoidably restricting the user interface possibilities.
The management of arbitrarily shaped windows becomes very complicated under an I39L window manager. In contrast, PizzaTool has a popup pizza preview window, whose shape is a rectangular frame around a round (or semi-circular, depending on your appetite) pizza window, with the space between the inside of the frame and the pizza cut out. It was very easy to implement, by subclassing ClassPopupWindow and overriding the /path method to cut out the inside of the frame and ask the center pizza client to add its shape to the path. When you move or stretch the window, you see a rubber-band preview of the actual shape the window will take when you release the button. The pizza path procedure knows to maintain a 1:1 aspect ratio (no oval pizzas), that centers the round pizza in the frame as you drag the resize corner around. The shape of a TNT window is not simply defined by curves or bitmaps -- it is defined by a method of the window object, which can apply constraints and may depend on the state of other objects in the system, like the size or number of slices of the pizza inside the frame. All this nice interactive feedback is totally trivial to implement with TNT, and is completely impossible with an I39L window manager. And even if an I39L window manager could be programmed to perform such custom feedback, it would still have to grab the server and lock out all other animation in the process, instead of using nondestructive overlays like TNT.
X11 window managers must grab the server in order to animate rubber-band feedback over the screen when resizing and moving windows. This grabbing causes many problems with NeWS synchronous interests, that can be demonstrated by pressing the "Help" key while dragging out a rectangle on the root background. NeWS can do a much better job at managing global resources in the server because it is in the same address space and it has facilities like the overlay plane specifically designed to implement such window management functions, without even grabbing the server. This antisocial server grabbing behavior is just one symptom of a general class of problems with external X window management, including other important issues such as keyboard and colomap focus.
If NeWS alone manages the input focus, it can manage it perfectly. An X window manager alone cannot, because it runs in a foreign address space, and is not in a position to synchronously block the input queue and directly effect the distribution of events the way NeWS is. But even worse is when an X window manager and NeWS both try to manage the input focus at once, which is the situation we are in today. The input focus problem could be solved in several ways: OWM solves the problem elegantly, as PSWM did in the past; OLWM could be made NeWS aware, so that when our own customers run our own external X window manager on our own server that we ship preinstalled on the disks of our own computers, OLWM could download some PostScript and let NeWS handle the focus management the way it was designed.
It's criminally negligent to ship a product that is incapable of keeping the input focus up to date with the cursor position, when you have the technology to do so. Your xtrek has paged the window manager out of core, and the console beeps and you suddenly need to move the cursor into the terminal emulator and type the command to keep the reactor from melting down, but the input focus stays in the xtrek for three seconds while the window manager pages in, but you keep on typing, and the keys slip right through to xtrek, and you accidentally fire off your last photon torpedoe and beam twelve red shirt engineers into deep space!
Oh yeah, and here is a picture of pizzatool:
You can put it on either side, and it doesn't look as ugly as "side-tabs" that you linked to. No, I'm not the author or anything, I've just been using this thing for a good solid few years. And I can't believe people are now falling for this silly side-tabs prototype when a perfectly Good, 100% working side/tree tab add on is already available and mature.
Thanks!
One nit: the target area to trigger the resize is super tiny. 1 pixel, I think.
- interface buttons disappeared: new tab, tab groups
- bugs when reordering tabs
- looked out of place/ugly even with the default theme
That said, this is a sufficient hindrance for me daily that I'm considering learning add-on development to be able to fix these issues in those add-ons or create my own.One thing that I'd love to have is the ability to reverse the order of the tabs and place the buttons at the top of the vertical tab bar instead of the bottom. I'm surprised that it isn't an option in any of the ones I tried: having the new tab button near the menu button would be a big usability improvement for me (I use the vertical tab bar on the right).
I've been using it for, I think, 2-3 years. And it's come a long way since the early days when it was buggy. I suggest you give it another go with a more recent version. And don't be put off by the ugly screenshots on the add on page as it's not quite what it looks like anymore.