Tree Tabs
-
@prebijak Nope, but if you have implemented a patch probably you could post there, and submit a ticket in bug tracker so devs can check that
-
@prebijak Post it here, maybe a link to a zipped file, I will take a look.
-
@Hadden89 What you talking about? This is tree tabs.
-
@Thovthe It's just like vertical tabs in Vivaldi, but with a difference that instead of stacking tabs, you can arrange them in a tree structure. Another difference is that pinned tabs are presented as icons, like in regular horizontal arrangement.
For even more flexibility I started working on implementing groups, I did not release it for public yet, but maybe soon. -
@pina_coladas I started to miss groups from my original vertical tabs myself
-
@kroppy Using git or other version control system is much more comfortable for that, using just what is provided on AMO misses many important information (e.g. the build system). For now, I have created a mirror https://github.com/jtojnar/tree-tabs-mirror
On a different note, the extension uses alt+1/2 for jumping in the tab hierarchy, which conflicts with Firefoxβs jumping to the first/second tab (i.e. pinned tabs). It is quite inconvenient, Firefox needs to have shortcut manager implemented.
-
@kroppy This is really great - I'm a convert to Vivaldi, but really missed tree-style-tabs. I know you probably have a long list of things to do, but here's some feedback for things I'd really like to see:
- Folders - I often want to group a set of tabs into a tree, but have the 'top' level as just a label not a tab in its own right. Double-clicking the folder would open/close the tree
- Option to increase the size of the tree controls - they're very hard to hit with a high mouse speed set, which I need since my desktop is 3200x1200. This might not be so necessary if we had folders for top level
- I like the ability to rename tab stacks in ordinary Vivaldi - again, folders would be great for that, but maybe also rename the root of a tree - or just tabs in general (not sure how easily Vivaldi would play with that)
- Colours for tree elements - it would be great to be able to set the colour of the tabs / trees for easy visual identification over and above the search feature
- Custom CSS - I'd like to be able to tweak the CSS a bit for my own entertainment but I couldn't figure out how to do that - maybe a text box in the settings for minor tweaks?
- 'Unload Tree' - at the moment it's either 1 tab or all but 1 tab, which is a bit extreme
- Customising the context menu - I really like the ability to remove unused toolbar items, and it would be great to disable some of the context menu items or add separators, etc. The 'Close Other' option is a bit dangerous for me, as I use tabs as a replacement for bookmarks really and don't ever want to lose my current session by accident.
Like others, I'd love to see this on github - if only for issue tracking and feature suggestions. Finding things in this forum thread is becoming a challenge...
Anyway - great work, and so long overdue for Vivaldi.
-
It's great to hear that groups are being worked on as well. With those and some refinements, this will be close to some imaginary fusion of Tree Style Tab and Tab Groups, which might be enough to let me use Vivaldi as a daily driver. Very much looking forward to seeing what happens!
-
@kroppy This is really great - I'm a convert to Vivaldi, but really missed tree-style-tabs. I know you probably have a long list of things to do, but here's some feedback for things I'd really like to see:
- Folders - I often want to group a set of tabs into a tree, but have the 'top' level as just a label not a tab in its own right. Double-clicking the folder would open/close the tree
I'm working on groups right now, not folders.
Sorry about that.
Maybe in future who knows
It would be absolute madness to have groups->folders->trees. (in a positive meaning)- Option to increase the size of the tree controls - they're very hard to hit with a high mouse speed set, which I need since my desktop is 3200x1200. This might not be so necessary if we had folders for top level
I will make double click on tab to expand/collapse toggle.
- I like the ability to rename tab stacks in ordinary Vivaldi - again, folders would be great for that, but maybe also rename the root of a tree - or just tabs in general (not sure how easily Vivaldi would play with that)
As I said before. Groups. There is a possibility that I will consider folders in the future. No promises yet.
- Colours for tree elements - it would be great to be able to set the colour of the tabs / trees for easy visual identification over and above the search feature
hmmmm.... interesting idea... complex to implement? maybe... what would happen when dragged and dropped to another tree? which color should be taken over? from root? I wont be able to sleep now thinking how to do it lol.
- Custom CSS - I'd like to be able to tweak the CSS a bit for my own entertainment but I couldn't figure out how to do that - maybe a text box in the settings for minor tweaks?
theme.css and variables for it are in defaults.js
When you make changes you have to bump CurrentThemeVersion as extension loads variables from localstorage and when you open Tree Tabs options page, if the CurrentThemeVersion in defaults.js is different it will update localstorage data.
Hard to explain that at hand now.- 'Unload Tree' - at the moment it's either 1 tab or all but 1 tab, which is a bit extreme
select tabs with ctrl+click or shift+click, and unload from menu, but click on the selected otherwise just one will unload (the one you clicked on)
- Customising the context menu - I really like the ability to remove unused toolbar items, and it would be great to disable some of the context menu items or add separators, etc. The 'Close Other' option is a bit dangerous for me, as I use tabs as a replacement for bookmarks really and don't ever want to lose my current session by accident.
ok, but it will take me some time to implement.
Like others, I'd love to see this on github - if only for issue tracking and feature suggestions. Finding things in this forum thread is becoming a challenge...
Yeah I know.... I really have to upload it.
Anyway - great work, and so long overdue for Vivaldi.
Thanks.
-
I'm not sure I'm clear on the difference between groups and folders - perhaps they're the same thing. For now, my hack workaround (but which I really like for some reason) is to put this PHP code on some random server somewhere:
<?php echo "<head><title>" . $_GET['t'] . "</title></head>"; ?>
and then create the 'folder' tab as the parent for the real pages using a URL like
http://server.somewhere.com/title.php?t=Useful%20Stuff
. It's horrible, but works really well, is very lightweight (only a few bytes to download so no browser lag), and if double-click to open close was there, it would be fine.Re colour for tabs, I'd be happy just to colour the root nodes for now and leave the child nodes plain. After that, the simplest might be to have individual colours and an option in the 'colour' menu for 'Inherit Parent Colour' as one of the colour choices...
And here's one more I really miss after a couple of days using TT:
- Click on active tab to return to 'previous' tab - in a big tab set, it can be really useful to have the equivalent of a 'back' tab feature, and I relied on this in native Vivaldi more than I realised. Hopefully not to complex (just remember the last tab which was active and switch back to it on click)
-
Question: How to move the Tree Tabs installation folder.
I hadn't realised the implications at the beginning, but I installed the extension from a folder on my desktop. I'd like to move it somewhere more appropriate, but I found that I couldn't 'keep' the tree of tabs I'd created. So I was wondering where the metadata for that is kept, and if it's possible to copy it to a 'new' installation of TT from a new folder location. Clearly it's not in the folder itself or it would come across. I'm assuming localStorage, so would it need an 'Export' button like for the theme? Could it be done by hand (since I only need to move it once)?
Many thanks.
-
Sorry for the deluge of questions, but here's another. To figure out CSS changes, I find the Inspector page very useful, but since TT captures right click, it's not possible to open the inspector on the web panel, and the shortcut (CTRL+SHIFT+I) targets the main page not the panel. Would it be possible to not capture the right-click if, say, CTRL was held down, and instead allow Vivaldi to handle the event to show the regular menu? I made these quick changes to
menu_tabs.js
and it works for me (might need better cross-browser coding for FF though):// trigger action when the contexmenu is about to be shown $(document).bind("contextmenu", function(event) { if(event.ctrlKey === false) { event.preventDefault(); } }); // show menu $(document).on("mousedown", "#pin_list, #tab_list, .tab, .pin", function(event) { event.stopPropagation(); if (event.button == 2 && event.ctrlKey === false) {
-
Detach tabs wasn't working for me. I'd end up with an empty frozen window, and Vivaldi would crash if I tried to do anything with it other than close it. I changed
DetachTabs()
intabs.js
and it works fine now:function DetachTabs(tabsIds){ chrome.windows.get(CurrentWindowId, {populate : true}, function(window){ if (window.tabs.length == 1){ return; } chrome.windows.create({state:window.state}, function(new_window){ chrome.tabs.move(tabsIds[0], {windowId: new_window.id, index:-1}); // chrome.tabs.remove(new_window.tabs[0].id, null); for (var i = 1; i < tabsIds.length; i++){ chrome.tabs.move(tabsIds[i], {windowId: new_window.id, index:-1}); } chrome.tabs.update(tabsIds[0], {active: true}) }) }); }
-
I'm not sure I'm clear on the difference between groups and folders - perhaps they're the same thing. For now, my hack workaround (but which I really like for some reason) is to put this PHP code on some random server somewhere:
<?php echo "<head><title>" . $_GET['t'] . "</title></head>"; ?>
and then create the 'folder' tab as the parent for the real pages using a URL like
http://server.somewhere.com/title.php?t=Useful%20Stuff
. It's horrible, but works really well, is very lightweight (only a few bytes to download so no browser lag), and if double-click to open close was there, it would be fine.Folders and groups are completely different things I have some experimental extension with folders from a year ago. I will return to it.
Re colour for tabs, I'd be happy just to colour the root nodes for now and leave the child nodes plain. After that, the simplest might be to have individual colours and an option in the 'colour' menu for 'Inherit Parent Colour' as one of the colour choices...
Ok it may be a bit easier to implement.
And here's one more I really miss after a couple of days using TT:
- Click on active tab to return to 'previous' tab - in a big tab set, it can be really useful to have the equivalent of a 'back' tab feature, and I relied on this in native Vivaldi more than I realised. Hopefully not to complex (just remember the last tab which was active and switch back to it on click)
It was requested already. I will think about that. It may get in the way with double click to expan/collapse tree which I want to implement....
-
Question: How to move the Tree Tabs installation folder.
I hadn't realised the implications at the beginning, but I installed the extension from a folder on my desktop. I'd like to move it somewhere more appropriate, but I found that I couldn't 'keep' the tree of tabs I'd created. So I was wondering where the metadata for that is kept, and if it's possible to copy it to a 'new' installation of TT from a new folder location. Clearly it's not in the folder itself or it would come across. I'm assuming localStorage, so would it need an 'Export' button like for the theme? Could it be done by hand (since I only need to move it once)?
Many thanks.
Yes you need to copy localstorage data file. It will be tricky, but I think you can do it
Copy Tree tabs somewhere and add it in vivaldi, following steps from my first post. After that you will have two tree tabs extensions. Now take a note of Web panel urls of both, from options pages (Url for the Web Panel text box on top) it will be something like "chrome-extension://mojomcagnbmmkbkfognoilmkmkllkioa/sidebar.html"What you need, are those random letters in front, in my case "mojomcagnbmmkbkfognoilmkmkllkioa"
Now you will have to navigate to your Vivaldi profile and find both local storage files, it should be:
C:\Users%USERNAME%\AppData\Local\Vivaldi\User Data\Default\Local Storagelocal storage files will have chrome-extension_ + those letters from above + _0.localstorage
don't mind -journal files, those are 0 bytes and are not considered in any way.Now close vivaldi, so the files are not locked, and now switch names of those files. After that run vivaldi and you will have switched trees and all options
Remove tree tabs you don't want to keep. -
Sorry for the deluge of questions, but here's another. To figure out CSS changes, I find the Inspector page very useful, but since TT captures right click, it's not possible to open the inspector on the web panel, and the shortcut (CTRL+SHIFT+I) targets the main page not the panel. Would it be possible to not capture the right-click if, say, CTRL was held down, and instead allow Vivaldi to handle the event to show the regular menu? I made these quick changes to
menu_tabs.js
and it works for me (might need better cross-browser coding for FF though):// trigger action when the contexmenu is about to be shown
$(document).bind("contextmenu", function(event) {
if(event.ctrlKey === false) {
event.preventDefault();
}
});// show menu
$(document).on("mousedown", "#pin_list, #tab_list, .tab, .pin", function(event) {
event.stopPropagation();
if (event.button == 2 && event.ctrlKey === false) {I didn't want regular people (that has no knowledge in programming) to poke around. But yeah, I was thinking maybe a checkbox in options? Something like "Debug mode"
-
@dsl101 Ok, good catch. I will update the code.
Ok, I did another change. Try this so you don't end up with an empty tab in front.
I can't upload an update to google drive right now, as I have some changes that cause some warnings and some nasty bugs. I will upload update in a week or so. For now try this:function DetachTabs(tabsIds){ chrome.windows.get(CurrentWindowId, {populate : true}, function(window){ if (window.tabs.length == 1){ return; } chrome.windows.create({state:window.state}, function(new_window){ chrome.tabs.move(tabsIds[0], {windowId: new_window.id, index:-1}); for (var i = 1; i < tabsIds.length; i++){ chrome.tabs.move(tabsIds[i], {windowId: new_window.id, index:-1}); } chrome.tabs.update(tabsIds[0], {active: true}); setTimeout(function(){ chrome.tabs.remove(new_window.tabs[0].id, null); },500); }) }); }
-
@kroppy I think the problem with a checkbox is that you want to be able to switch between the 2 context menus easily, so for me the CTRL key made sense. I guess you could guard that CTRL key with a debug option, but really, what's the harm in non-techies finding the original menu?
-
Sorry for my absence for 3 weeks, I've been busy...
@dsl101 Yeah, you are right I will add CTRL+RMB Click.
-
@kvaps Thanks man, I will upload it to google drive