helium/ui: add tab tree functionality to vertical tabs#1468
helium/ui: add tab tree functionality to vertical tabs#1468riomadeit wants to merge 1 commit intoimputnet:mainfrom
Conversation
|
This is so neat! Having used Sidebery for over a year, I have a little design suggestion: overlap the tab's dropdown arrow (the branch expansion icon) with the tab's favicon; have it be visible only when hovering over the tab/over the favicon. That way, you can create extra horizontal space and the title itself will have more room to it. Here is what it looks like in Sidebery:
Also, since this was not visible in the demo: does closing a tab also close all its children tabs or does it it de-indent them by one-level? I think both are useful behaviors to have. Perhaps left click on the close button for the latter behavior and right click for the former. |
|
Another thing I’d like to see is whether hibernating a tab propagates to all child tabs or just the parent tab. Similar to the previous comment, I believe it would be beneficial to customize this behavior. Perhaps there could be granular control over various of these behaviors, or I think rolling them all into one “nested state propagation” setting with “individual” or “recursive” options would be ideal. |
Currently no, it automatically reparents them to the next level in the tree.
Not sure about right-clicking the close button - is there precedent for that kind of interaction already? An explicit menu item like 'Close Tree' might be better for this.
Hibernation only applies to the selected tab, not its children. I tried to avoid touching anything beyond the core nesting functionality to keep this easily maintainable alongside normal tab behavior. |
|
https://github.com/7rah/sidebery - perhaps this one could be helpful. |
This really only saves you the horizontal space of one dropdown arrow, because all child tabs have to be indented anyway to distinguish themselves from a root tab. (Even in the screenshot you shared, it doesn't seem to be giving any extra room, because the root is also indented... I guess that's a Sideberry issue though.) |
this saves horizontal space on all child tabs as well because each of them also have arrows that occupy space. the space occupied by indentation is independent of this and will exist regardless. |



For your pull request to not get closed without review, please confirm that:
(an approved feature request, or confirmed bug).
otherwise I have marked my PR as draft.
organization if I lied by checking any of these checkboxes.
Tested on (check one or more):
Summary
Adds tree-style tab behavior to the vertical tab strip, including parent/child hierarchy, indentation, collapse/expand, drag/drop reparenting, and basic session restore for tree state.
Demo
tabtrees-helium-demo-compressed.mp4
Known areas for review
I used Firefox's TreeStyleTab extension as my primary reference for this (specifically the Proton theme). I think their implementation is a useful benchmark for how this could feel once polished.
Note: I was asked by wukko to submit this on my X post.