
Show HN: Doogie – A Chromium-Based Browser with Tree-Style Pages - kodablah
https://cretz.github.io/doogie/
======
gmurphy
This is a great use of Chromium!

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.

~~~
nachtigall
> It was too power-user for what we were going for

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".

~~~
otakucode
Chrome had side tabs for years. Never overtly, but you could enable them
manually. But they took them out because someone 'didn't like how they looked'
and despite thousands of people starring the bug and hundreds of comments,
they refused to even tolerate their existence as a hidden feature. They're
very serious about making sure you use their software only the way they want.

~~~
rasz
Vivaldi has sidebar tabs, chrome under the hood.

------
mcintyre1994
Bubbles sound like a really great feature! I'll be waiting on a Mac version
too so maybe this already exists - but it'd be awesome to be able to pin
domains to bubbles so they always open in that bubble. Then Facebook can have
their own bubble and can't see anything even if their scripts/buttons get
through ublock.

~~~
tradesmanhelix
The Firefox extension "Firefox Multi-Account Containers" by Mozilla has the
exact features you mention. I've been using it ever since it was first
released as a Firefox Test Pilot add-on and it's great! So awesome to be able
to keep things segregated. Combined with the Tree Style Tabs and Tab Groups
extensions, it's killer.

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://addons.mozilla.org/en-US/firefox/addon/multi-account-
containers)

~~~
gogoengie
Tree Style Tab is being actively ported to a WebExtension:

[https://github.com/piroor/treestyletab/issues?q=is%3Aissue+i...](https://github.com/piroor/treestyletab/issues?q=is%3Aissue+is%3Aopen+label%3AWebExtensions)

For a general progress report:

[https://github.com/piroor/treestyletab/issues/1224#issuecomm...](https://github.com/piroor/treestyletab/issues/1224#issuecomment-326467198)

------
rprime
I remember a few years ago when Chrome actually had a hidden feature flag that
let you enable side tabs, not fully tree style, but it was better than
nothing. Sadly they removed it.

------
sengork
Hierarchical web browsing navigation is something that's been around in
NetSurf for a while, more browsers need it:

[http://www.netsurf-
browser.org/documentation/guide.html#Hist...](http://www.netsurf-
browser.org/documentation/guide.html#HistoryLocal)

[https://pbs.twimg.com/media/DKCzWJrUQAAaMK3.jpg:large](https://pbs.twimg.com/media/DKCzWJrUQAAaMK3.jpg:large)

------
jdc0589
I switched to Firefox (dev edition) a month or so ago almost completely
becuase the TreeStyleTabs extension is better than anything for chrome.

I LOVE having nested tabs. It totally prevents me from getting lost when I'm
links deep in technical documentation.

~~~
anotheryou
it will change a bit though. A rewrite for firefox' new plugin architecture is
on the way

~~~
otakucode
Will the rewrite reduce it to the utterly-useless form of a button that drops
down a list of open pages? I've seen that sort of thing attempted a few times
by browsers that are idiots about their UI and don't let extensions change it
and it's really garbage. Firefox going that route just makes me profoundly
sad.

~~~
anotheryou
looks like he's able to port everything important:
[https://github.com/piroor/treestyletab/issues/1224#issuecomm...](https://github.com/piroor/treestyletab/issues/1224#issuecomment-326467198)

just hiding the normal tab-bar might require a line of userchrome.css

~~~
chrismorgan
I wrote a couple of styles to hide the tab bar and the sidebar header:

\- Tab bar: [https://github.com/Timvde/UserChrome-
Tweaks/pull/31](https://github.com/Timvde/UserChrome-Tweaks/pull/31)

\- Sidebar header: [https://github.com/Timvde/UserChrome-
Tweaks/pull/32](https://github.com/Timvde/UserChrome-Tweaks/pull/32)

~~~
anotheryou
I even managed to move the address bar in to the title bar, but unrelated to
my CSS, the browser toolbox now refuses to open...

------
mvdwoord
This looks very promising, I'll keep an eye out for macos version, and in the
mean time might play around in my VMs. In any case, thanks and godspeed to
you.

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.

~~~
O_H_E
Whats wrong with Vivaldi UX????

I really like their power-user approach.

------
CharlesW
I love this way of managing tabs and windows! Today I approximate this by
using Chrome and the under-appreciated Tabs Outliner[1] side-by-side.

[1] [https://chrome.google.com/webstore/detail/tabs-
outliner/eggk...](https://chrome.google.com/webstore/detail/tabs-
outliner/eggkanocgddhmamlbiijnphhppkpkmkl?hl=en)

~~~
agumonkey
most functions aren't free though

------
0xCMP
I wish someone would create an Emacs buffer style browser where we could
easily switch between tabs similar to how Emacs lets you switch buffers. I
know you can do this in Emacs, but I just think for all the work people do to
get tabs working nicely, maybe the way Emacs has done it actually works pretty
well without overwhelming the screen with so much information all the time.

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.

~~~
mbrock
It's not what you're looking for, but it might be interesting to note that
there's a pretty capable window manager (hybrid tiling/floating) that runs in
Emacs, written in Emacs Lisp, and indeed lets you jump between windows using
your buffer switcher.

[https://github.com/ch11ng/exwm](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.

------
jpfed
I love everything about this except that it's not done _right now_. This is
excellent.

~~~
dotancohen
My thoughts exactly. I'm having a hard time getting Qt 5.9 to install
thoroughly on CentOS 7, but if this works it will be worth it.

~~~
jcelerier
How so ? Don't the binary packages work ?
([http://download.qt.io/official_releases/qt/5.9/5.9.1/](http://download.qt.io/official_releases/qt/5.9/5.9.1/))

------
skdjksjdksjdk
Does anyone here make money through these browsers? Either by selling ads or
by some other means. I have a few ideas in this space, but I am not sure about
monetization strategies.

------
heywire
Completely unrelated, but I just had to comment that I love the style of this
webpage. Those double-line borders take me back to my days of writing toy
programs in Clipper.

~~~
jkeat
Yes! It reminds me of some sites listed on
[http://brutalistwebsites.com](http://brutalistwebsites.com) (discussion:
[https://news.ycombinator.com/item?id=11517491](https://news.ycombinator.com/item?id=11517491))

------
gwenzek
It's funny how the feature description is exactly my firefox setup. Tree style
tab, mouse gestures to close and switch tabs, ability to suspend tabs…

------
cjbillington
Cool idea. Can't run on the latest Ubuntu though, it seems the latest Qt in
the Ubuntu repos is 5.7?

    
    
        $ ./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.

~~~
kodablah
Eek, yeah, I didn't have a global Qt install when I was testing. I do bundle
the Qt libs along side. Maybe change LD_LIBRARY_PATH to local dir? I have
filed an issue:
[https://github.com/cretz/doogie/issues/45](https://github.com/cretz/doogie/issues/45).
That's why it's an alpha release :-)

~~~
cjbillington
Doesn't seem to work - not sure why.

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.

~~~
kodablah
I have opened a new release at
[https://github.com/cretz/doogie/releases/tag/v0.6.1](https://github.com/cretz/doogie/releases/tag/v0.6.1).
Please test there, and comment on
[https://github.com/cretz/doogie/issues/45](https://github.com/cretz/doogie/issues/45)
if it's still not working.

------
moe
Great work!

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...

~~~
otakucode
Never. Chrome had side tabs, but some being wiser than all others determined
unreadable microtabs to be the appropriate punishment for the sin of opening
too many (good thing there isn't a big movement towards web-based apps!). They
were removed, multiple bugs opened begging for them to brought back, merged
together, starred by thousands of fools (like myself), but the word came down.
Someone didn't like how it looked. And that was that.

------
billconan
So can this be implemented as a chrome extension? instead of a stand alone
browser ?

~~~
gertef
[https://chrome.google.com/webstore/detail/tabs-
outliner/eggk...](https://chrome.google.com/webstore/detail/tabs-
outliner/eggkanocgddhmamlbiijnphhppkpkmkl?hl=en) has overlap

------
flux88
This is sick. Well done. My brother who is autistic has an elaborate routine
of viewing and ordering web pages. Next time I see him I'll see if he likes
this.

------
mateuszf
Looks great! I'll wait for the OSX version. Also - vim or emacs shortcuts
would be appreciated.

~~~
kodablah
Yeah, sorry. I developed this on my Thinkpad and I didn't really want to dev
this in a hackintosh VM. My fear is that even if I develop a OSX version, it
will become stale because I don't use it regularly. I abstracted all the
platform-specific stuff, so it should be really easy for anyone wanting to add
OSX support. I'll happily help/guide anyone.

~~~
dotancohen
> My fear is that even if I develop a OSX version, it will become stale

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?

~~~
kodablah
For macOS support: [https://cretz.github.io/doogie/guide/faq#where-is-the-
macos-...](https://cretz.github.io/doogie/guide/faq#where-is-the-macos-
version)

For donations: [https://cretz.github.io/doogie/guide/faq#where-can-i-
donate-...](https://cretz.github.io/doogie/guide/faq#where-can-i-donate-how-
do-you-plan-on-monetizing)

------
Cacti
No OSX support? :( :(

------
bradhe
What problem is this solving exactly?

~~~
sparkie
It's solving the problem that Firefox has nuked the tree-style-tabs browser
extension in FF57. It also highlights a good reason to write a separate
browser as opposed to implementing it as an extension for one of the big
player's browsers, because you can guarantee they'll break your extension
within 3 years.

~~~
gogoengie
Tree Style Tab is being ported to a WebExtension:

[https://github.com/piroor/treestyletab/issues/1224#issuecomm...](https://github.com/piroor/treestyletab/issues/1224#issuecomment-326467198)

------
agumonkey
Ho the website made me think it was ascii UI .. too bad. Still great, the page
tree is useful right away.

------
Meph504
Can't think Doogie without thinking of Lil'Doogie

[https://www.youtube.com/watch?v=e7R8umuu7ts](https://www.youtube.com/watch?v=e7R8umuu7ts)

