One of my favourite tools is my tiling window manager. This lets me manage a lot of windows though a very nice hierarchy. Here's a rough simplification:
- You have a number of workspaces (aka. virtual desktops).
- Each workspace has a set of panes. A pane may be
- a window,
- a tab strip of panes (like a browser),
- a horizontal or vertical "tile" of panes.
This lets you have a ton of active windows. Although I don't use them, there are browsers particularly for tiling window managers that don't have their own tab strip at all: you just use the tiling window manager's.
You can then have, for example,
- 10 workspaces,
- each with some layout of panes (depending on what you're doing you might prefer a fullscreen experience or multiple visible windows),
- each with a bunch of tabs (this might be the window manager's tab strip or the browser's).
This workflow easily accommodates not just hundreds of tabs but hundreds of windows of any kind.
Note that this is what tab groups from unor's answer does, but with some differences:
- There is no attempt to lay things out spatially. Spatial layouts have usability problems, despite their appeal. Spatial layouts
- change more when you add and remove tabs than a list,
- have higher cognitive load,
- are harder to organize and reorder,
- don't map well to keyboard shortcuts (especially next and previous),
- take up UI space, requiring a modal interface.
- The current context is constantly available. The list of workspaces with content on is in my main bar at the bottom of the screen, the available panes are visible and the tabs in a tabbed pane are at the top of the pane.
Now, I'm not suggesting copying a tiling window manager. Tiling window managers are serious power-user tools and rarely make trade-offs appropriate for the average user. (Heck, I have Capslock remapped to a modifier key.)
However, what does work really well is having simple, flat hierarchies. I would suggest something like this:
The squares will select the tab group. The user then has the hierarchy of windows, then groups, then tabs. The squares might support user renaming.