Hacker News new | ask | show | jobs
by EFruit 1220 days ago
I use a deeply modified fork of this every day. My changes have been:

1. Rewrite the backend in Go (I'm nkt qualified to audit the C version, and having Web Stuff™ interact directly with an unaudited C filesystem daemon makes my skin crawl)

2. Modularize it quite a bit to make it easier to add endpoints like...

3. Rudimentary Tree-Style Tabs support

4. Desperately try to improve the performance enough to navigate a sizable session (I have not yet succeeded)

Even after all this, I've come to the conclusion that the relationship is backwards: the filesystem representation needs to drive the browser, not the other way around.

It's my considered opinion that some hero needs to step up and build a browser that exists to render one tab and nothing else, shelling out for everything more complex than scrolling. Then the power users cwn supply their own tab/bookmark/window/filesystem schemes using whatever glue they prefer, be it python, node, shell scripts, Windows Explorer...

8 comments

As alluded in the post, we should all have switched to Plan 9 decades ago. Everything behaves like a file, which means you get a mountpoint for web stuff (https://man.9front.org/4/webfs), and use another application that reads and writes files on top of that (https://man.9front.org/1/mothra).

I fear the current web is too complicated for that. All hope is lost, the web cannot be salvaged.

> It's my considered opinion that some hero needs to step up and build a browser that exists to render one tab and nothing else, shelling out for everything more complex than scrolling. Then the power users cwn supply their own tab/bookmark/window/filesystem schemes using whatever glue they prefer, be it python, node, shell scripts, Windows Explorer...

That's basically uzbl. The core version has no tabs, no bookmarks, no history, and is extensible in whatever language. Seems it's been abandoned, though.

https://www.uzbl.org/

* > It's my considered opinion that some hero needs to step up and build a browser that exists to render one tab and nothing else, shelling out for everything more complex than scrolling.*

Is that not what your OS's 'native' web view API is?

Would suckless surf fit that bill?

https://surf.suckless.org/

What I want is foobar2000 + meets browser (decoupled renderer/chrome/css engine/javascript runtime/plugin system etc)
Is your fork opensource? If so, would you mind giving a link?
Yes, see the sibling comment, and for the love of all that is holy, heed the warnings. Use it at your own peril, and even then with caution and distrust.
I just moved my bookmark management out of my browser because I wanted to use unix-y tools to deal with them. CLI instead of a GUI afterthought. I think you're absolutely right. I'd love to access browser history at CLI. And management of open tabs.

Care to share your fork? Go works better for me.

FUSE proxy: https://gitgud.io/ee/gtabfs WebExtension: https://gitgud.io/ee/tabfs

Caveat _extremely_ emptor: This code works on my machine, and I have no recollection of how it came to be that way. There are undoubtedly bugs, both obvious and subtle, in both halves. The Go side is a pile of garbage (in no small part because of the countless interfaces it has to implement).

It is EXTREMELY unlikely that either the server or extension is compatible with its original counterpart. The filesystem layout itself has been reorganized more along the lines of /sys conventions.

Could you expand a bit more about your bookmark management strategy?
It's not particularly deep or thoughtful, I just realized that the browser interface is not a good place to manage a large list of links. Almost anything else is better. I have tried a few different browser-based bookmark management tools, and they have always been lacking somehow.

I started using Obsidian recently, so I am moving my bookmark archive into there. It's neat because you can right-click>copy a bookmark folder, then paste into Obsidian as markdown links, with the page title as the link text (I think it's Firefox doing this, but not sure. I had to get a "copy as markdown" extension for Chrome). I also use the multi-select "bookmark tabs" feature, and Firefox Sync to move tabs between devices. These three things in combination enable me to make closing tabs a regular, routine thing, because I now know that I can find them again when I need them. Instead of going into the black hole of my bookmark toolbar, they go into an Obsidian vault, a single folder full of markdown files. This means I can use my normal CLI tools and text editor (keyboard instead of mouse is a big part of the appeal here) to search, sort, and organize things.

The detailed organizational principles vary based on the purpose of the bookmarks, and I think that's mostly a personal thing. I don't have some sort of well-defined technique, but for example I now put the "project research link dump" into the "project notes file" (where it obviously belongs, but I was too lazy to do this previously). I have a few different "optimistic learning links" lists, like one for productivity software tools, which I might randomly browse when I have some down time at work. Another for interesting-but-not-important-for-work videos on math, physics, CS.

Now, instead of thousands of links and hundreds of folders, my bookmark toolbar can be used for just a handful of "webpages that I use frequently" - the intended purpose of the bookmark toolbar, as far as I can tell.

Well, now I want to expand on this a bit in a blog post, but I'll have to come back to that.

Thanks! That's cool, I'm taking inspiration
At that point it's just an OS.
That's a good point. Browsers are desktop environments with a built-in application runtime. Maybe it's the "Inner-platform effect."

It's an interesting idea to pull bits of the browser back into the system, or alternatively to write a desktop environment that's also a web browser (ChromeOS?).

A former coworker used Plan9 at a previous job, and he said it was cool how you could draw a rectangle on part of a terminal, and pipe that text (as it changes) to another process. Maybe rethinking GUI (and web in particular) from a unixy/plan9y perspective is a worthwhile exercise.

I grew up on Windows, and then there was the browser, and now everything is just the browser.