Hacker News new | ask | show | jobs
by jzoch 1861 days ago
Tree style tabs on the side of my window absolutely changed my computing life. I stopped seeing tabs as a collection of what Im doing and instead started using them + the browsers inclination to save my tabs across restarts to track everything.

Ill have a tree of tabs for blogs im reading, a tree for work stuff, a tree for amazon orders, etc. All that context can be closed in a single click. Ill have hundreds of tabs open (but asleep!) and just pick the tree im interested in. Dont need to save bookmarks or save articles for later - they are all there always.

7 comments

I’d like to try this. What browser do you use? I see that it’s a feature for Vivaldi and I also see a Chrome extension.
Not OP, but Tree Style Tabs is for Firefox.
Thank you so much for sharing! This is a game changer - I'd been using two separate windows and manually dragging things around like a noob.
Now you also probably see why many of us prefer Firefox.

And: this might be hard to believe but it was much better before - extension wise.

I switched to Firefox for Tree Style Tabs.
I only stay with Firefox for tree style tabs.

I think, the day chrome makes TST possible, is the day Firefox loses a large fraction of it's remaining power users.

Window-based task grouping (where that's possible) is ... somewhat tenable.

It's not available on Android / Mobile, of course, but on any windowing desktop OS it's an option.

Firefox + Tree Style Tabs is still worlds ahead of this.

> Firefox + Tree Style Tabs is still worlds ahead of this.

imho the pinacle of tab-ui was pre-quantum firefox with tabkitv2.

tree style tabs is roughly on par with what opera delivered in the early 2000's or nowadays vivaldi.

I was probably using that, when it was around.

Good, and possibly better than today's TST, but still short of my goal(s). And that's without its instability (ISTR that crashing a fair bit.)

I'd like to be able to:

- Search tabs (by metadata).

- Search tabs (by content).

- Organise tabs by task / project. Including assigning open tabs to tasks, and possibly to multiple tasks.

- A sense of utility vs. info tabs. (Pinned tabs ... sort of does this. Examples might be webmail, chat app, or tools like a dictionary or other data-lookup page.)

- Arbitrarily grouping a set of tabs based on specifiable criteria, or UI-based multi-select.

- Taking actions based on those groupings (close, combine under a single tree, bookmark, print, save, etc.)

I'd have to think more on what sorts of things I'd be doing, but Web as Workflow is a major component of this. Current browser design seems entirely antithetical to this.

I made https://cretz.github.io/doogie/ to solve this, but I don't really maintain it (I just build it for myself on each new Chromium) and it doesn't work on Mac.
That looks awesome. I'm going to try it out. Do extensions work on it?
No. It's also a bit buggy and you'll want to compile with latest CEF yourself.
https://histre.com/ does tree-style web history visualization. This is a personal knowledge graph app I'm working on.
I highly recommend Tabs Outliner, a Chrome extension
A very pale shadow of TST.
I use Bookmark OS which lets me organize tab sessions in a folder tree structure. Worth checking out
I agree, I'm the same. People who sneer at large tab collections don't seem to realise that when they can be put to sleep, tidied away (various extensions allow groups to be folded), they are more like advanced bookmarks and working context. Or, they think there is no justification for having such collections.

For me they are working context for different projects over years. Working on project X a month ago? 6 months ago? Great, I can go back to where I was. People have told me I "need" to close all tabs and if I need working context, copy links and notes into some kind of knowledge-base. But I tried that, and in practice a "context switch" from project X to activity Y takes hours and occasionally days to write up. Making knowledge-base notes is valuable, I do it sometimes, and that's how I know how long it takes me. But it takes a long time so it's not always the best use of priority when activity Y beckons. There is usually not enough time.

I asked people what they do to tackle my sorts of projects. The answers were always the same: Some ums and ahs, and it turns out they don't. They just don't take on the same kinds of things. I would really like to learn from highly productive "clean desk" people, working on similar projects to mine, how it is done, but to the best of my knowledge I've never met one.

So sleepable tabs it is for now. There's still room for better organising. Tree style tabs aren't very searchable. The content of the pages is even less searchable, and it would be helpful if there were a way to go back in time to an earlier snapshot if the page is removed. I would really like them to be integrated into other tools. I tried Org-mode (I use Emacs all the time) but the one feature lacking in Org-mode is the ability to capture and show a collection of web page content decently, so it hasn't worked out for this kind of knowledge capture. There are commercial tools that claim to be what I'm really looking for, but I'm not going to store such a major part of my working life in closed commercial software.

I had to stop using the Tree Style Tabs extension for Firefox, unfortunately, because it was slowing down the browser terribly. This wasn't Firefox, or the tabs. It was the Tree Style Tabs extension.

It's probably some trivial algorithmic O(n²) somewhere, but it reached the point where opening a tab or clicking on a tab, or doing other things in Firefox that should be near-instant would take 5+ seconds, and the browser would take 5 minutes to start up, even though almost all tabs start up asleep. There is no good reason to be this slow, because most tabs are unloaded most of the time in Firefox. And indeed when I disabled TST but kept the tabs, everything became fast.

Sidebery. After trying out other extensions I settled on Sidebery, which is working out well so far. In particularly, it's very much faster than TST for large numbers of tabs, and doesn't appear to slow down the browser during non-tab operations. It's also working out nicely for me in other ways, and works reasonably well with containers.

(There are some quirks: Dragging sometimes just fails, refuses to move some tabs, or a tab even "disappears" until Sidebery is turned off and on again. Moving a list of tabs to another window can be very slow, about one a second. The "panels" tab-grouping feature is odd because it's the same list of tab-groups in every window, which doesn't make sense; in most of my windows there are empty panels as a result.)

Is what you're describing any different from just bookmarking all the tabs in a window to a new folder and closing the window?

That's what I do. And then just open the whole folder as tabs in a new window when I go back to something.

Then the advantage is that I can give the folder a name, a date, tags, nest it under a grouping of folders, etc.

Plus I can back up bookmarks which gives me huge peace of mind. I've been burned before by my browser "forgetting" my tabs before on restart, as well as browser sync bugs, so I don't put a ton of faith in the longevity of tabs.

Even if tabs are sleeping, if you have 100 different mini-projects going on from the past year, do you have... 100 different windows open all the time? How do you even find the window you need?

> Is what you're describing any different from just bookmarking all the tabs in a window to a new folder and closing the window?

Tabs are formed automatically, closed easily, and organized by the order you opened them in.

Bookmarks require going through a multi-step dialog, removing them requires another dialog, and they're organized by manually creating a nested folder hierarchy.

I think most excessive tab use is down to bookmarks not having the best UX.

yeah bookmark ux is so bad!! why so many dialogs and painful recall ability.
Why do you think you can't back up your tab session? I've had firefox corrupt the sessionstore file a few times over the years and when that happens I just open up Time Machine and restore the last good version.
There are many differences.

First, if you "open the whole folder", you have to wait for a few hundred tabs to open for a large project, a few tens for a small project. That's very slow and uses a lot of memory. They don't open quickly in the asleep state the same was as tab sessions do.

Then there is the maintenance of the folder. If you bookmark all tabs in a window to a folder, later you'll open the whole folder, do a bit of work, reading, whatever, then save to a new folder because the set of active items isn't the same as it was when you started. Now you have to delete the old folder, otherwise you'll end up with a different miserable problem: Huge numbers of folders of bookmarks, all slightly different.

You'll probably need to do this a few hundred times over the life of a big project, if you context switch like I do in and out of different projects. That's a lot of folder activity.

Sure you can date them, but do you remember why you didn't delete a folder, was it because you wanted to keep that one or just forgot?

You can't realistically update the bookmark folder incrementally as you go, because there is no visual indicator showing which of the currently active tabs in the window has a matching bookmark (or which bookmarks in the folder are now excess), and it's too onerous and difficult to bookmark each time you open a tab in that window and delete a bookmark each time you close a tab.

Then, there's context. It's a little thing, but remembering the scroll position is a useful cue for later, in a large article, though if some section or comment has a permalink I tend to click that before leaving the tab. Ideally I'd want to be able to annotate pages as well, to quickly note why I've kept that article, documentation, comment or whatever open, but we take what little we can get from the tools we have. (It's possible to select text regions in each tab, at least in Firefox, but I've never actually checked if those selections stay selected across a browser restart. Anyway, they disappear uncomfortably too easy to rely on.)

> Even if tabs are sleeping, if you have 100 different mini-projects going on from the past year, do you have... 100 different windows open all the time? How do you even find the window you need?

For perspective, I wouldn't say I do 100 mini projects in a year, it's fewer than that, but a number of them span multiple years.

I don't have 100 windows, I have currently 22, but it's temporary and will reduce. I consolidated some related things recently. Three windows are for my current work project, for which there are about 300 tabs. This is because there's an active working area window (GitHub etc), a collected-things-from-work-and-researched-items-for-work window, and another for activities on a different monitor like watching videos and shared notes.

With some tab management extensions you can make foldable groups - this is what people talk about with Tree Style Tabs, Sidebery (which I'm using now) and other hierarchical tab management extensions. This means you don't need 100 windows for 100 projects; you can effectively archive projects.

To even find Windows used to be very difficult until I started using an extension that lets me give names to Windows. Ironically the window-naming extension I use is Tab Count in Window Title, because I tried several others and they showed up as using more browser resources, so this is the one I use. Having the tab count is quite helpful anyway :-) (Because if I forgot to give a window a title, it still tends to have a a recognisable tab count and current page.) Now they all have names in the "Window" menu, and when moving around in the window manager. I find this useful for "Move to window" (by name) as well, which I use to move a tab that was opened in the wrong place or something ephemeral I decided to keep, to the appropriate window where I can go through and organise them a bit more later.

There's also a geographical aspect. Those browser windows are overlapping but not at quite the same place on the desktop, and they are different sizes. The locations work ok with my memory for recently used windows. MacOS's four-finger-swipe-down is good, and I position windows somewhat consciously to be helpful for this. Some of them are deliberately shaped as narrow rectangles, as a reminder they have queued items I need to organise (and then probably close that window).

There are a lot of improvements possible to this setup. I don't feel I've found what would be ideal for me. I have a fairly clear idea of what I'd like, but don't know any tool that comes close, and I don't have the spare time to write one. But bookmarks of URLs in linear lists or with basic folders, flat history lists that don't distinguish things I want to keep versus things I don't, are not it. I tried the history thing, it was very time consuming to recover the information I needed from it.

I'm in a very similar situation as you are regarding my browser usage and needs. I now have 46 windows open and 2.1K tabs open, but I've had at some point almost 70 windows and more than 7K tabs...

The most useful extensions I've found to manage this complexity are https://github.com/tpamula/webextension-window-titler and https://github.com/l10nelw/winger.

This is the script I made to bring up the firefox window I desire from the custom name I gave it using window-titler:

    #!/usr/bin/env bash
    #
    # switches to the firefox window that starts with the provided word between brackets
    
    NAME=$1
    
    WIN=$(wmctrl -l | grep Firefox | grep "\[${NAME}")
    if [[ -z $WIN ]]; then
        echo "no window found"
        exit
    fi
    
    NUM_WINS=$(echo "$WIN" | wc -l)
    if [[ $NUM_WINS -ne "1" ]]; then
        echo -e "$NUM_WINS windows found, please be more specific:\n"
        for w in "$WIN"; do
            echo "$w" | cut -d' ' -f4-
        done
        exit
    fi
    
    WIN_NAME=$(echo $WIN | cut -d' ' -f4-)
    WIN_ID=$(echo $WIN | cut -d' ' -f1)
    
    echo opening: $WIN_NAME
    wmctrl -iR $WIN_ID

And winger allows me to stash not-currently-needed windows in bookmarks, and restore them later...

This is a less than perfect system, but it's good enough for me for now.

Thank you for the brain dump. I liked that this came up. I used tree style tabs for a few years starting way back in maybe 2012, but eventually just abandoned it because of the same performance problems you mentioned. I didn't replace it with anything good, and was just recently getting annoyed at the state of things as i suddenly find myself context switching a lot on mini projects. I was just setting myself up in Emacs org mode and felt i needed better integration with the browser. I have a little extra time to put into making it right. I think at the very least i am going to write some small amount of integration for the currently clocked Emacs org task, the main OS views, and Firefox, just Mac OS X to start, all open source.

Anyway, i was exploring options and i was glad to find your experience. I think i am ultimately looking for something similar to what you want and maybe will email you at some point to ask about this if i do indeed get a little deeper into it if you don't mind.

> I asked people what they do to tackle my sorts of projects. The answers were always the same: Some ums and ahs, and it turns out they don't. They just don't take on the same kinds of things.

And what are these kinds of projects that you are the only one to tackle?

I'm not unique in the kinds of projects I've tackled over the years. My projects tend to be technical, scientific, or legal/accounting, and tend to build on a lot of serendipitously found knowledge in articles, comments, mailing list posts, Github issues, research papers, as I read around or discover on the side while researching specific topics.

I should have said, "I asked people who like to tell me I'm doing it wrong what they do...".

There's a small subset of people I found telling me I'm wrong/insane, there's something wrong with me, I'm untidy, that I should do something else and I have a hoarding problem, etc...

Among that subset, I found they consistently had no better solutions to offer when asked, and this is because they just didn't feel the need to tackle problems involving a lot of reading material that needs to be retained, referenced from and used as an increasingly authoritative knowledge base over time in order to complete technical projects using that knowledge.

It is that lack of better solutions from armchair critics which has led me to believe I'm not necessarily "doing it wrong", even though I know perfectly well that it has problems, and what kinds of systems I would prefer to use if I could find or build them.

One of those people was quite helpful though, and rightly pointed me to knowledge-base software (that they themselves weren't using mind), but somehow seemed to think I have a lot more spare time than I do to maintain the contents, and thought I was bluffing about that. I do actually take a lot of notes already, have been doing so for many years, and I know how long it takes me. When to take notes, and when to leave things in tabs (perhaps to take notes on later), is about prioritising long-term task flows.

I'm sure there are people who have much better solutions than I've found so far, and perhaps they could show me someday. (Though, it's not likely to convince me if it involves closed-source software and locked away information, or too much time-consuming clipping process before you're allowed to move on to some other big task, as those do come up.)

But I haven't met those people yet. Only critics who don't have better solutions, and think large numbers of tabs is a sign of mental laziness or something. Whatever I am, it's not lazy. Perhaps I should go to a tab-hoarders' conference and we can devise better tools there :-)

The most interesting feature of tree-style tabs is that they build a detailed information structure implicitly, as a side effect of browsing actions that you would do anyway. I think that is the right approach for any attempt to improve browser UIs.
This is the only reason I use edge over chrome, for tree tabs. I would use firefox but I have noticed significant slowdown on some websites that I use frequently.
I have multi-row tabs on Firefox (just requires some chrome CSS customization). I use 3 rows of 30 tabs with enough space so I can read the title.

I just open every new link a new tab. It's not uncommon, if I'm doing some kind of research, to have over 100 tabs open. In any other browser, that's basically unmanageable.

Do tab extensions like this pose any security risk in terms of hoovering up and transmitting your browser history of sensitive info on pages you visit (think tokens in Urls)?
Yup, grouping in tree style tabs is a godsend. I largely ended up sticking to Firefox over chrome mainly due to this extension.