Show HN: Doogie – A Chromium-Based Browser with Tree-Style Pages
cretz.github.io
cretz.github.io
Storytime! When we started designing Chrome back in 2006, and despite having spent the past year working on Google's Firefox team, my favorite browser was iRider, which was an IE shell with tree-style-tabs. It was too power-user for what we were going for, but some of the concepts (pinning) live on in Chrome today.
Chrome might as well support the Sidebar API to make this possible like Firefox will do with Tree-Tab-Style Add-on iirc. I read a bug report once at the Chromium bug tracker saying roughly "Sidebar API wont be implemented because UI needs to stay simple".
The one UX challenge you would need to solve though, that Opera did not, is how much horizontal space to use per tab, after it gets cramped. No-one would be happy with any particular default...
The reasoning wasn't that we didn't like it and wanted to kill hidden features (as above, I loved it), but more that all things, even small or hidden ones, come with small and hidden cost, and cost is the end of large projects. It sounds a bit daft to many, but just having the code in the tree is a burden - tests run, translations need to be updated, and minor dependencies all over the place increase development costs persistently. For example, consider the staff who added the "audio indicator in tabs" functionality and how the presence of a separate tab system in the tree might cause them extra work, or how their work may inadvertently cause critical bugs in sidetabs that don't have an owner to fix it or care for it.
To keep Chrome nimble we attempt to cut and trim as much as we can, knowing that that annoys some. We don't always get this right, but it's better to aspire to do fewer things well than to be generally OK with crufty bits here and there.
I realize this explanation probably won't decrease the sadness, and you've probably heard something like it many times in the bug tracker, but if not, I hope it explains things a little.
$ du -sh /Applications/Google\ Chrome.app/
346M /Applications/Google Chrome.app/
$ du -sh /Applications/Firefox.app
147M /Applications/Firefox.app/(I've filed a number of bugs on several of them, based on the experience, I simply won't bother in future. It's absolutely clear that Google's goal is to driver users such as myself far, far away. Why should I fight that?)
I'll point though to the tyranny of the minimum viable user, and a rather massive Achilles' Heel Google have been manifesting of late.
https://www.reddit.com/r/dredmorbius/comments/69wk8y/the_tyr...
That said, Firefox 57 will kill the Tree Style Tabs and Tab Groups extensions, so hoping some browser like Doogie picks up those features and incorporates them into the browser core or at least as extensions.
[1] https://addons.mozilla.org/en-US/firefox/addon/multi-account...
https://github.com/piroor/treestyletab/issues?q=is%3Aissue+i...
For a general progress report:
https://github.com/piroor/treestyletab/issues/1224#issuecomm...
http://www.netsurf-browser.org/documentation/guide.html#Hist...
I LOVE having nested tabs. It totally prevents me from getting lost when I'm links deep in technical documentation.
just hiding the normal tab-bar might require a line of userchrome.css
- Tab bar: https://github.com/Timvde/UserChrome-Tweaks/pull/31
- Sidebar header: https://github.com/Timvde/UserChrome-Tweaks/pull/32
Currently juggling between FF Nightly (for speed and memory usage) but lacking critical add-ons (LastPass), and Chrome(/ium). I tried Vivaldi for a bit but was really disappointed with the UX after a while. I miss the golden era of Opera.
I really like their power-user approach.
[1] https://chrome.google.com/webstore/detail/tabs-outliner/eggk...
That tree on the left would be better in some kind fuzzy search screen that appears on a key-binding (e.g. like some setups in Emacs) and otherwise be hidden so the full screen can be used for the page. Either as a panel like it is now or a modal/window.
https://github.com/ch11ng/exwm
In the tiling mode, Emacs buffers and X11 windows map 1:1. It's like having arbitrary X programs inside Emacs.
Unfortunately, Conkeror is reliant on XULRunner, which is deprecated if not outright EOL now (especially since XUL itself is deprecated / nearing EOL).
Firefox kind of does that. If you type Gmail and you have a Gmail tab open you will see a "switch to tab" entry. It support fuzzy search so it's handy.
$ ./doogie
./doogie: /usr/lib/x86_64-linux-gnu/libQt5Core.so.5: version `Qt_5.9' not found (required by ./doogie)
Or is it supposed to use the Qt shared objects in the current directory? It seems to find the system ones first.Perhaps you can fix by calling dlopen on the shared objects explicitly rather than linking them and relying on the linker to find the libraries at runtime. I'm not sure, not totally familiar with C linking.
Also, is there a particular technical reason you went with CEF directly instead of QtWebEngine or QtWebkit ? It would be interesting to know about it.
QtWebKit was deprecated then just recently undeprecated IIRC (with a non-Qt maintainer). As for the QWebEngine stuff, it was a bit premature when I was looking and didn't offer everything I needed at a low level. It's quite possible it does now (and would make my work easier!), but I have not looked.
I never understood why this isn't the default.
Hopefully this will finally gain traction in mainline Chrome. But I'm not holding my breath...
Being open source and hosted on Github, I doubt that will be a problem. The Mac community is rather active.
By the way, here's my vote for VIM keybindings!
Do you have a Paypal address that we could donate to?
For donations: https://cretz.github.io/doogie/guide/faq#where-can-i-donate-...
Although, for a Vimperator replacement because of the breaking FF/Vimperator upgrades, I've found VimFX to be pretty awesome. I had to write some configuration scripts to get d/D to drop tabs like Vimperator, but other than that it works very well.
That's it. Hierarchical pages makes it really easy to contextually browse or what I call "immutable browsing" which is never just clicking, but always ctrl+clicking links to never change your current page.
Also, the one thing many people don't realize is how easy it should be to close dozens of pages. A simple drag across the close buttons in Doogie (or drag over which ones you want) helps close swaths of pages.
https://github.com/piroor/treestyletab/issues/1224#issuecomm...
I'm excited for it.