TabFS: Mount your Browser Tabs as a Filesystem
thesephist · 5 years ago
48 comments
thesephist · 5 years ago
48 comments
dheera · 5 years ago
Sounds like a fantastic idea, especially if I can use it to save video and images from websites too.
Unfortunately it doesn't work for me though -- I get "Unchecked runtime.lastError: Native host has exited."
Output of install script: ``` $ ./install.sh chrome mnlmpigkagdnfjmicelbkejgfefcnlkp + [[ 2 -lt 1 ]] + [[ chrome == \f\i\r\e\f\o\x ]] + [[ chrome == \c\h\r\o\m\e ]] + [[ 2 -eq 2 ]] + [[ 32 -eq 32 ]] ++ uname -s + OS=Linux ++ echo chrome ++ tr '[:upper:]' '[:lower:]' + BROWSER=chrome + case "$OS $BROWSER" in + MANIFEST_LOCATION=/home/dheera/.config/google-chrome/NativeMessagingHosts + mkdir -p /home/dheera/.config/google-chrome/NativeMessagingHosts + APP_NAME=com.rsnous.tabfs ++ pwd + EXE_PATH=/home/dheera/code/clone/TabFS/fs/tabfs + case "$BROWSER" in + EXTENSION_ID=mnlmpigkagdnfjmicelbkejgfefcnlkp ++ cat + MANIFEST='{ "name": "com.rsnous.tabfs", "description": "TabFS", "path": "/home/dheera/code/clone/TabFS/fs/tabfs", "type": "stdio", "allowed_extensions": ["tabfs@rsnous.com"], "allowed_origins": ["chrome-extension://mnlmpigkagdnfjmicelbkejgfefcnlkp/"] }' + echo '{ "name": "com.rsnous.tabfs", "description": "TabFS", "path": "/home/dheera/code/clone/TabFS/fs/tabfs", "type": "stdio", "allowed_extensions": ["tabfs@rsnous.com"], "allowed_origins": ["chrome-extension://mnlmpigkagdnfjmicelbkejgfefcnlkp/"] }' ```
rasz · 5 years ago
>save video
Problem with HTML5 video is you can use more than just a link to video file https://developer.mozilla.org/en-US/docs/Web/API/MediaSource There are "certain" websites serving videos using BLOB object mediasource created dynamically from encrypted https sources. So far I had no luck trying to capture resulting video datastream, mediasource is a write and forget type of interface, and on top of that MediaRecorder/captureStream() is bugged and crashes so you cant even record lossy reencoded capture.
https://stackoverflow.com/questions/50938089/how-to-download...
I should probably experiment with shimming whole MediaSource api and capture data before its pumped into the read only void.
why_only_15 · 5 years ago
Another trick is to use mobile safari, because mobile safari only supports HLS, which is more easily downloadable.
ianbicking · 5 years ago
It's running a script in the background to exfiltrate the info from the browser to the system, and that script has an error. I believe it's a script like /home/dheera/code/clone/TabFS/fs/tabfs* – if you look around in the browser some more you should find the stderr output of the script, which probably explains the error
cocktailpeanuts · 5 years ago
This is a brilliant piece of work. As someone who has thousands of tabs open, I've always wanted to "close all tabs with a single command", or view all the open tabs and mass select them and close, for years. Otherwise, going through them one by one and deleting takes forever. Now somebody make a vim pluggin so I can delete tabs by visual selecting a bunch of them and typing "d".
Shared404 · 5 years ago
This does seem like a brilliant idea, doesn't it. I'm thinking about how difficult it would be to setup something like 'surf' but using chromium/firefox, and then driving it completely off the CLI. It honestly sounds like my dream browser.
frob · 5 years ago
You can kinda do that with the vimium plugin. Select a bunch of tabs and press "x", but it doesn't support visual selection of tabs.
db48x · 5 years ago
If you just want to close all tabs then in Firefox right click a tab and select "Close Other Tabs". Also, you can control-click on tabs to apply commands the the whole set, such as closing them, sending them to your phone, etc.
drran · 5 years ago
In Firefox, you can click at tab bar and select "Select all tabs", then bookmark them all, then close them all.
Also, "Auto discard tab" plugin does a good job by keeping unused tabs closed, to save resources.
db48x · 5 years ago
I'm not sure an addon is necessary for that. Firefox automatically unloads any tab that hasn't been used in a while.
rasz · 5 years ago
>thousands of tabs open
yeah about that, are you sure they are open and not hibernated? Chrome had proactive-tab-freeze-and-discard , later renamed to proactive-tab-freeze and finally forced On in 80 with no option of turning it off. 'hibernated' tabs are merely a bookmark without loaded content. I dont think this extension would be able to work with non loaded tabs without forcing them all to load. 300 tabs is able to easily eat 16GB of ram, Im scared to think what would happen with 1000 tabs loaded in Chrome.
I remember good old Opera 12.x where you could sit on 200 actually loaded and active tabs and RAM usage was somewhere around 2GB.
superkuh · 5 years ago
Using single process Firefox forks I often load in 500 tabs plus another 500+ suspended in under 4 GB. Of course I'm also running NoScript temp whitelist only and most sites are websites not web applications. But 1000 loaded tabs is certainly doable in way less than 16GB of ram if you don't use a multi-process browser. It's just a shame this is written as a chrome style extension (which modern FF supports) and not a firefox extension.
eitland · 5 years ago
Which fork do you use?
I'm starting to get seriously tempted to go with one of the forks. I seriously miss the old extensions.
superkuh · 5 years ago
Pale Moon. Although I usually try to not say which fork aloud on HN because anything but FF gets massively downvoted.
mcdevilkiller · 5 years ago
You can use auto tab discard. I've done 1500 tabs on an 8GB windows machine.
saurik · 5 years ago
Somehow, Chrome doesn't seem to actually do this despite claims to, which is why I use The Great Suspender (a Chrome extension that actually hibernates tabs).
herewulf · 5 years ago
WARNING: The Great Suspender as distributed from the Chrome Web Store appears to come with malware. See this comment: https://news.ycombinator.com/item?id=25615971
axbytg · 5 years ago
> As someone who has thousands of tabs open
This behavior always confuses me. To what end? Have you ever derived any value from a tab you chose not to close?
saagarjha · 5 years ago
Yes–I go back and read them occasionally. By keeping things open I get frequent reminders to look at things and sometimes I do.
rohan1024 · 5 years ago
I used to do this now I just search again and occasionally I will bookmark a page that is too valuable to miss in future searches.
This keeps my bookmarks clean.
Firerouge · 5 years ago
Chrome only preserves browsing history for 90 days. Keeping tabs open can work around that limitation
samb1729 · 5 years ago
Without even bothering to check, this seems like it can't possibly be true. You are surely not saying that the billions of Chrome users worldwide have no browsing history from September or earlier, right?
brw · 5 years ago
"Your History page shows the webpages you've visited on Chrome in the last 90 days."[0]
Google's My Activity[1] stores everything though.
saurik · 5 years ago
Damn, that's ridiculously evil... why the hell am I only able to get basic functionality through a cloud service?!
ossopite · 5 years ago
That's absolutely right, at least in terms of the Chrome browser history. I always found this limitation astounding.
I use the History Trends Unlimited extension to work around this (https://chrome.google.com/webstore/detail/history-trends-unl...)
With 5 years of history the stats page is a bit slow to load but the search feature works great and it can export to CSV
wutbrodo · 5 years ago
Hm, I'm kind of confused by your perspective here. Do you only have a single thread of tasks you're doing at any given time on your machine, all of whose resources are torn down and rebuilt from scratch when needed? I use my current laptop both for work and personally, and in my personal workspaces alone, I have at least half a dozen browser windows with ~20 tabs representing research that I'm doing or a task that I'm organizing; everything from gift-buying to medical devices for a family issue to building a new workout routine for the pandemic. You can rack up tons of relevant tabs pretty quickly in these scenarios, and there's really no advantage to closing them in any well-managed environment (ie one that has non-rudimentary window management and a browser/extension that handles idle tabs with negligible ongoing resource use).
I probably have hundreds of "productive" tabs open, and that's before even getting to tabs that are serving as an "L1 cache" version of a read-it-later service. And all of this comes with extremely quick clean-up; once I buy the gift/finalize the routine/purchase the item, it's trivial to close the entire window for that task.
masa331 · 5 years ago
Having hundreds or thousands open tabs also confuses me and always seems like a mess to me.
The way i work: I mostly work on a one thing at a time. For that i can have probably at max 40 tabs open. Once it gets past some threshold(i don't recognize or remember what's in them) i tend to start to close the obsolete ones. If there is something i find useful i bookmark it. If there is something i think i would like to read in future i also bookmark it. Once the work is done i close all the tabs. In general i like my tabs closed, it brings peace to my mind.
franga2000 · 5 years ago
I don't think I go into thousands, but easily accumulate a few 100 tabs. The way I work, I rarely have a task truly done in one go. Besides various side projects, I work on multiple websites for multiple clients and constantly need to put one on hold and wait for feedback, so I go work on another one. If I expect feedback withing a ~2 day period, it really doesn't make sense for me to close the related tabs. Not only does it save time when picking up the task again, but helps me reconstruct my train of thought without having to take notes.
The way I think of it is kind of like swap memory. Instead of wasting effort saving to disk and verifying the saved data (taking notes), I chuck the data somewhere it isn't in the way (a new virtual desktop) so I can pick it up later. In fact, this is exactly what happens with the tabs at the system level. Since I'm constantly running out of ram and have a stupid amount of swap space set up, my OS gladly swaps the relevant browser processes and unswap the relevant set.
samb1729 · 5 years ago
> it brings peace to my mind.
Mine too.
My thoughts on this kind of thing aren't in any way backed by studies or research (I know some folks are sticklers for that sort of thing), but they essentially boil down to reflecting on human history.
The ability to store a huge amount of information and near-instantly recall it with these computery things we all love is an incredibly new development that I don't really consider compatible with my brain. If the brain is a somewhat general purpose computer that's been really slowly optimised by evolution, the alternative approach to ours is akin to* scheduling hundreds of threads on a small number of hardware threads. Doable? Sure. Ideal? Doesn't feel like it to me.
I've tried allowing myself to just continuously spawn tabs and it makes me uncomfortable much like it does to see a Windows desktop used as a dumping ground for whatever a person happens to want to save on their machine. Fortunately I almost never see the latter these days, and I'll choose to believe people don't do that anymore without verifying that assumption...
*this is really hand-wavy, please don't shoot.
edrobap · 5 years ago
I have seen this behaviour repeatedly. Having to many “task windows” makes it difficult to focus. Similar to having to many tasks in Asana or emails in my Inbox. Prioritisation is the only option to come out of this. Unfortunately, I haven’t found a way to tag priority with the “task windows”. And that’s the reason I daily browse through all windows and close the ones that are not urgent.
wutbrodo · 5 years ago
Hm, I haven't found this to be the case. This is probably in part because of my WM/OS setup; I use a tiling window manager and different workspaces for different contexts, so my fan-out factor is never that high in cases where it matters.
iam-TJ · 5 years ago
May I recommend Zotero [0] to you?
"Your personal research assistant
Zotero is a free, easy-to-use tool to help you collect, organize, cite, and share research."
Like you I am an avaricious multi-tasker over extended periods of time and was heading towards the same state you appear to have reached.
I realised it was not optimal and did some research and discovered Zotero. I use it personally and require it at my businesses.
It adds several wonderful abilities - best is the ability to share and collaborate on research at will.
wutbrodo · 5 years ago
> Like you I am an avaricious multi-tasker over extended periods of time and was heading towards the same state you appear to have reached.
> I realised it was not optimal
I will take a look, thank you! Would you mind briefly elaborating on what you found suboptimal about the workspace/window/tab hierarchy for organizing your tasks? So far it's working very well for me, and the low friction is a really important part of it. Though it's completely possible that I have blind spots around my pain points, or am about to run into a wall. Thanks in advance for your thoughts?
iam-TJ · 5 years ago
My issues with tabs, even with extensions that organise them:
* sheer mental challenge of quickly relocating related tabs and the context for why they were kept and relationships between them
* inability to easily add WIP notes and commentary
* difficulty of sharing tabs and context with others
* possibility of losing them if power lost unexpectedly (during extended suspend for example) or accidentally close a single window instead of doing File > Quit
* moving between different devices and different browsers
* efficiency; affect on the browser and system of keeping tabs open for long periods of time (without quitting browser)
I don't use workspaces for the same reason I don't like tabbing between applications on the same monitor. I use multiple monitors so I only need to move my eyes to switch focus.wutbrodo · 5 years ago
This all makes sense, thank you. The friction-free aspect of browser windows is still pretty critical to my workflow, but I'll look into whether it makes sense to grow the habit of "migrating" a task to Zotero when it gets heavy-duty enough.
iam-TJ · 5 years ago
I first discovered Zotero via the Mozilla add-ons search whilst looking for an extension to help me. Using the Firefox/Chromium connector puts it a context-click away:
Zotero Connector > Save To Zotero > "Web Page with Snapshot" / "Web Page without Snapshot"
So I can both maintain the tab workflow whilst 'tracking' progress with Zotero application itself.
catchmeifyoucan · 5 years ago
This describes Amna quite well. I think you'd love it! It's still early, but a lot fo the things you mention, we're working on.
It's designed like a todo list which is a layer out to keep that context
iam-TJ · 5 years ago
The promo looks slick but there are two blockers for me:
1. Not FOSS (Hard requirement *)
2. Basic/Free version doesn't claim Firefox connector
* I insist all my businesses use only FOSS for core functionality and we have on-premise capability (no 'cloud'). As well as putting us in control of our own destiny (we have the talent) we can add specific functionality at-will and do contribute that back to projects as well as buying support contracts or making regular donations.catchmeifyoucan · 5 years ago
Thanks for calling it out! Open Source is a consideration, but we're not there just yet with it. You still have 'On' Premise with Amna. All data is stored on your machine.
samb1729 · 5 years ago
I cannot speak for the user you replied to, but to answer this question:
> Do you only have a single thread of tasks you're doing at any given time on your machine, all of whose resources are torn down and rebuilt from scratch when needed?
Yes, absolutely, at least when it comes to my web browser.
I run Firefox Nightly and intentionally use its prompt to restart for an update as a prompt to consider whether I should close the things I have open. I'll sometimes ignore the update for a few hours, but not usually longer than that.
If I need to retain some information over a period of more than a few hours, I'll transfer it to a note-taking app or something similar. Habitually not keeping a large number of tabs open helps me maintain focus to some extent, and deliberating over whether to close a tab or window presents and opportunity to think about extracting a snippet for storage elsewhere.
To me the idea of keeping an entire webpage open as a method of storing what is likely a very small subset of what it contains just doesn't seem "right", regardless of actual resource consumption on the computer I'm using.
mark_l_watson · 5 years ago
I do the same. In a notes app, I have a TODO note where I save links and a few word description of what a link is. This gives me one place to maintain a reading list.
I also have notes for current projects/tasks. I have structure and search to find things.
As a life-hack to make better use of my time, I use the Freedom.io service to block all social media and “time wasting” sites so that I can only access them before work, first half hour of lunch time, and after end of work day. In practice what this means is that I scan HN and Twitter early each morning for tech stuff that is useful/interesting and add any useful links to my notes. Every few days I edit my notes to discard material.
samb1729 · 5 years ago
On the topic of blocking distractions, I've found that creating a separate user account for focus time helps quite a bit, since it's sufficiently annoying to remove that particular barrier. Choosing not to configure a keyboard shortcut for account switching was a good call, too.
I tried using multiple Little Snitch profiles or different browsers on the same user account in the past but switching between them is way too low effort for my easily distracted brain. Getting back into distraction mode can be performed on autopilot in those cases.
That little delay in waiting for my watch to unlock my user account is just long enough to make me stop and think, and the vibration is like a gentle slap on the wrist.
My focus account has a single Little Snitch profile configured to block the time-vampires I know I'm susceptible to, along with Firefox configured to clear history on close. I don't need to be reminded Twitter exists just because I opened my browser and pressed T, they should at least have to pay for the privilege of advertising to my brain!
In general I think that taking full advantage of computers to make absolutely everything instantly accessible is in many ways actively harmful to many types of brains. We live in an economy and too many of us just give that stuff away.
benedikt · 5 years ago
> well-managed environment (ie one that has non-rudimentary window management and a browser/extension that handles idle tabs with negligible ongoing resource use).
Can you elaborate on this? Which extensions are you talking about?
I also rack up hundreds of tabs and my browser is often the main resource hog for me. I’ll often have to kill -9 it to force it to start with “oops we crashed, here are your previous tabs in an unloaded state”, but it sounds like you have a better way of doing this
fuzxi · 5 years ago
The Firefox extension "Auto Tab Discard" is what you're looking for. Not sure about equivalents for other browsers.
wutbrodo · 5 years ago
I currently use the Great Suspender on Chrome, which will suspend a tab that's been open for a while. The suspended tab just shows a Great Suspender icon, so it takes up ~0 RAM. I've whitelisted certain domains and sites (eg Messenger apps).
I know there are a ton of extensions aimed at this problem, including OneTab (which will collapse many tabs into a single page of links), but TGS works the best for my workflow.
I also use Session Buddy to periodically backup my current window/tab state, which I find more reliable and powerful than the default tab-restore functionality.
herewulf · 5 years ago
DANGER, Will Robinson!
I could really use something like the Great Suspender. However, looking into it, I found quite a bit of controversy surrounding its new (since June) "maintainer". This issue sums it up well: "SECURITY: New maintainer is probably malicious"[1]
Here is the gist of it:
> Using the chrome web store version of this extension, without disabling tracking, will execute code from an untrusted third-party on your computer, with the power to modify any and all websites that you see.
So, installing from the Chrome Web Store is a complete no-go.
One can still install the extension from GitHub, but with Chrome constantly evolving and the now, unmaintained-on-GitHub extension having known issues with losing all your tabs (to which there are workarounds), I'm very wary of using this extension.
[1]: https://github.com/greatsuspender/thegreatsuspender/issues/1...
wutbrodo · 5 years ago
Thank you for the heads-up! The way extension stores work always made me a little uneasy about using smaller ones like this.
Edit: haha, someone seems to have seen your comment and made a post that made it to the Frontpage of HN
herewulf · 5 years ago
You're welcome! Yes, it's quite problematic and there are numerous ways malicious code can abuse the sandboxed environment.
That's great news about that article! Thanks for pointing that out.
blackrock · 5 years ago
I open a new window to research a specific topic. Then I open up all the links on sub tabs.
This encloses all my research for this subject in one window. Often times I have upwards of 10+ windows opened. Since some of the work spans over several days or weeks.
I also take screenshots of relevant information. Which gets automatically labeled by date and time into a screenshot folder, and sub-sorted into months.
tveyben · 5 years ago
This is where I miss to be able to name each group-of-tabs (the window) with a name so I can manage (eg when alt-tab’ing) quickly.
So window ‘topic-1’ have 10 tabs relating to ‘topic-1’ and the property ‘topic-1’ is visible in my WM.
Is this possible (I have not -yet - searched ‘enough’ for this functionality...)?
noisy_boy · 5 years ago
I use Window Titler[0] for this because I use the same workflow of opening a new window for each "topic".
[0]: https://addons.mozilla.org/en-US/firefox/addon/window-titler...
catchmeifyoucan · 5 years ago
Try Amna. https://getamna.com.
You can do this per chrome window and bubble the tasks up to a task.
tveyben · 5 years ago
I am very happy to have shared my thoughts here (and received good feedback and suggestions!), but the best is that it finally made me look into this need - and I am not the first (big surprise :-)
It turns out that just very recently exactly what I need was made possible in Chrome (currently only "experimental") just set this flag [1]. I especially like that it's possible without the need of third party SW.
This page [2] is what alerted my attention to the solution.
NB.: It does make me wonder why this feature have not existed until now as it seems so obvious, I mean ever since the introduction of the TABbed interface in browsers (which started pre 2000 IIRC) the (over-) usage pattern of tabs existed.
Anyway - even if I have missed something pre-existing I am now extremely happy to be able to name my TABS in Chrome!
[1] chrome://flags/#window-naming
[2] https://winaero.com/how-to-name-a-window-in-google-chrome/
noisy_boy · 5 years ago
This is exactly how I "partition" my work; makes closing logically related tabs super simple too - just close the window related to the "topic".
eitland · 5 years ago
> Have you ever derived any value from a tab you chose not to close?
Not GP but of course!
Why would we close something we are going back to?
imtringued · 5 years ago
I derive close to zero value from bookmarks. The only value they provide is that they appear in the address bar during searches. They are organized in a linear fashion, they require constant maintenance and they are also not immediately accessible often requiring you to open a separate window. Worst of all even if you choose to do something as stupid as manage bookmarks you will now have to have to manage both tabs and bookmarks at the same time.
Tabs? They are easy to organize, easily accessible because they are always visible and they are powerful enough to completely remove the need for bookmarks which makes using bookmarks always inferior because of the downsides of bookmarks.
Now lets get to the actual point:
>Have you ever derived any value from a tab you chose not to close?
I close tabs that I don't need eventually, bookmarks just keep accumulating because there is an easy method to add them, but actually finding or deleting bookmarks is a lot of effort.
opan · 5 years ago
It helps if you use tags more than folders for bookmarks, that way you can have a page marked as "dogs, computers", another as "dogs, pizza" and then filter to dogs to see both. It also helps (in firefox) if you know the special symbols you can put in the address bar for filtering. * for normal bookmarks, I think + for tags, and % works for open tabs. Follow them with a space and your keyword.
I've been using qutebrowser mainly for a couple months now, and I find the way bookmarks and quickmarks fit into the standard open or open in new tab dialogue feels very powerful. I often am just hitting O to open in new tab, typing a few characters, and picking a result from bookmarks or history. Searching and going to a URL happens there too. I try to use either descriptive names like "guix-bug-issue" for quickmarks so they show up when I type any of those bits (bug and issue intentionally redundant so if I think to search either, it comes up), or I use very shorts strings like "lfm" for my last.fm profile. In the case of these shorter ones, you get the added advantage of being able to go there without looking. If you type an exact quickmark name in the box and hit enter, it goes straight there, you don't have to wait and look over the suggestions in the box.
aoeusnth1 · 5 years ago
Vim already supports a decent file explorer view, if you edit a directory instead of a file. It’s sort of like emacs’ dired (DIRectory EDit).
yudlejoza · 5 years ago
1 - Right-click empty space next to the tabs and select 'Bookmark all tabs'
2 - Name the bookmark folder (within the top-level bookmark folder) something like: 'Tab-mess-from-<date-time>'
3 - Ctrl-F4 close them. Press and hold Ctrl, then F4 them one at a time. You can close 200+ tabs in a minute. (or as other suggested, right-click any tab and use the option 'close other tabs').
rohan1024 · 5 years ago
> Ctrl-F4 close them. Press and hold Ctrl, then F4 them one at a time.
Ctrl-F4 shuts down entire browser, Ctrl-W closes each tab with a press of w. This is behavior in Ubuntu and it holds true for most application windows.
_flux · 5 years ago
Alt-F4 closes the entire browser, and indeed Ctrl-F4 closes the current tab. (Just tried it out, I've always used Ctrl-W for that.)
rohan1024 · 5 years ago
My bad now I tried the Ctrl+F4 and yes it works exactly the way OP said. I assumed he was talking about Alt+F4 :)
mulmen · 5 years ago
I open a new window for each "task" and open tabs in that window, if it is non trivial I also move that window to a new Desktop/Space. When I want to shelve a task I bookmark all the tabs in that window into a dedicated folder then close the whole window and the desktop.
catchmeifyoucan · 5 years ago
you should try amna, which basically automates that process. You make a task, it gives you a chrome window for the task and syncs your work. You can then close the browser, and the data is saved.
_flux · 5 years ago
I've used this extension for doing mass closes: https://addons.mozilla.org/en-US/firefox/addon/sorted-tabs/
As a bonus you can arrange URLs by name, url, or time next to each other, so it's usually fast to churn through related or duplicate tabs.
frombody · 5 years ago
There is a browser extension called onetab that does this for you.
The issue i find is that even if you create the perfect system, you still rarely m go back and revisit these tabs kept open.
catchmeifyoucan · 5 years ago
Try amna - https://getamna.com.
It can make this a little better by storing the tabs as part of a task. Soo you can get back to them as part of a context rather than just a link.
polm23 · 5 years ago
Onetab is great for dealing with that.
ksec · 5 years ago
Same here, currently sitting at 300 tabs ( Lost about 800 a few weeks ago from Safari crash again ). I just wish the Show All tabs on Safari put up a list of tabs so I could quickly navigate through them ( and selectively close them ). Right now Show All Tabs Reloads all the tabs. That is the same on macOS and iOS. Your phone gets quite warm doing it.
lilyball · 5 years ago
Show All Tabs on iOS definitely does not reload tabs. I know on macOS it used to force all tabs to load but I had the impression lately that it wasn’t doing that anymore (though I rarely use this feature).
ksec · 5 years ago
iOS reloads them ( or partially load them ) as you scroll through it to get a screenshot. I tried it just now. Or they somehow saved a Screenshot of it. ( But then there is no reason why macOS safari isn't doing the same. )
macOS does the same except without the scrolling.
lilyball · 5 years ago
iOS saves screenshots of tabs. I scrolled through my own and found a bunch of old tabs (didn't realize I had so many) that just showed pure black.
macOS saves screenshots too, to show when hovering over a tab. Curiously, it doesn't seem to use these saved screenshots in Show All Tabs. Also I just tested, Show All Tabs on macOS is no longer loading unloaded tabs. I have a window with 13 tabs right now, only two of which I've visited since launching Safari, and the others just remain as blank in Show All Tabs.
theelous3 · 5 years ago
> Lost about 800 a few weeks ago from Safari crash again
Sounds like someone taking a corner at 200 mph and rolling their eyes when they hit the crash barrier. Not often is the following true, but - you're using that tool wrong.
ksec · 5 years ago
The crash has nothing to do with 800 tabs. Most of those Tabs are not active. And a crash, whether it has 1 tabs or 10000 tabs that lost the previous sessions is not using the tool wrong.
theelous3 · 5 years ago
It wasn't designed for that kind of use, and it's being used that way. There are extensions, bookmarking tools, session savers, other browsers and all of their extensions, which are better able to handle this kind of thing.
zeckalpha · 5 years ago
Safari maintains a list of tabs in a plist. You can’t delete while Safari is running, but at least you can extract the list to back it up.
ksec · 5 years ago
Yes. I immediately check that after it happened except the plist was empty.
Firefox used to have similar problem with their json so after a few bug report with them they fixed it with another json.bak as redundancy. ( The good days of Firefox )
saagarjha · 5 years ago
Time Machine has saved me more than once in this case.
eitland · 5 years ago
> I've always wanted to "close all tabs with a single command", or view all the open tabs and mass select them and close, for years.
In Firefox you can right-click on a tab and close
- all tabs
- or all tabs to the right
If you use tree style tabs you can also close a tree or a subtree.
Edit: and there is an extension (yep :) to the tree style tab extension to allow you to export a subtree as a nested list of links - in Markdown!
franga2000 · 5 years ago
Since recently, you can also ctrl- and shift-select them and either move or close just those tabs. Sounded like a gimmick when I first saw it, but it has proven to be a huge time saver when I neeed to split a window in two because my browsing session has expanded far beyond the original scope or kill a bunch of tabs in the middle somewhere because a thread of searching has proven fruitless.
nine_k · 5 years ago
In Firefox, you can install the Tree-Style Tabs extension, and have a reasonable tree of tabs. It does resemble a filesystem tree a bit.
I think it's the most important extension for people who do heavy browsing, research things online, etc.
netsharc · 5 years ago
Vivaldi has a tabs panel that lists all open tabs (as well as recently closed ones) like files in Windows Explorer, you can multi-select them and hit delete, or indeed hit Ctrl-A and delete. Sadly afaik there's no filter to e.g. select all Stack Overflow tabs.
bayesianbot · 5 years ago
You can a) right-click a stack overflow tab, stack them and then close them all or b) control-ddubleclick one site and Vivaldi will autoselect all from same domain.
m463 · 5 years ago
I keep a few tabs open, and close the browser regularly.
A friend of mine keeps basically infinity tabs open. I sort of rolled my eyes, but accepted his rare behavior.
However as time has gone on, I've been surprised to find I may have the rare behavior and it is common for people to work this way.
So.. maybe this is a way he can backup his "filesystem" and not suffer a nervous breakdown when his machine reboots or some othe browser failure where he loses his world.
kapilkaisare · 5 years ago
Is having several tabs open in a browser rare? My social circle - which comprises mostly software engineers, admittedly - sees browsers with 30+ tabs open as normal.
coliveira · 5 years ago
I can have as much as 100 tabs open, depending on what I'm doing.
weaksauce · 5 years ago
I am like your friend... basically tabs are a "working memory" that you don't want to store permanently in bookmarks. each window or sets of windows is typically a different topic that is being research on with a bunch of middle clicks to open tabs. I have so many open that I wrote a small webext for it that shows a page of all your tabs that you can click on to navigate to that tab with a click. just a nicer interface to see all the windows open and all the tabs. https://github.com/fiveNinePlusR/tabist
jsrcout · 5 years ago
This is the extension I didn't know I needed, thank you!
weaksauce · 5 years ago
I hope you find it useful :) if you have any suggestions let me know. i have been working on a small upgrade to it where the tabs can be closed with a middle click and reordered in the windows but i don't work on it very often as it's quite useful as it stands for my needs
edit cmd-shift-e/ctrl-shift-e will open up the extension which I guess I should update on the homepage.
loceng · 5 years ago
Hey cool, thanks, I've installed it now too - it'll be quite useful!
I'd love if you could have a link on the Tabist page that shows a popup allowing for copy/pasting of a text box to show list of titles/URL or just URLs for either easy sharing of a grouping of tabs or so I could do an occasional backup of URLs? Not sure if this person's code is useful for that: https://news.ycombinator.com/item?id=25605222 ?
Maybe a global link for all windows and one per window?
Edit to add: I have a dream of someday contributing financially to a bunch of open source organizational tools that I'd like to see/would use and depend on heavily, let me know if interested in hearing more - can email me matt@engn.com if curious.
weaksauce · 5 years ago
Awesome! I'm not sure if the version on the store has the tab backup feature enabled or not but there is a backup feature that is under the options area. It just dumps a json file with all your tabs and a restore feature where it opens up all those tabs again but that is really slow if you have a lot of tabs.
Interesting idea on the popup; I'll give that some thought.
loceng · 5 years ago
Cool, thanks. Another use case other than backup I was thinking is if just wanting to share a window of tabs (so all relating to a project) by copy/pasting it to someone in a message/email; I guess on flip side too, if person receiving the links also had Tabist then could have another popup to "open links" (maybe there's a way to do that in Chrome easily but I'm not aware); could eventually create a centralized service that just pushes the links to them and perhaps auto-opens them - obvious potential security issues there but arguably person you're receiving links from would be trusted by you.
nicklaf · 5 years ago
> A friend of mine keeps basically infinity tabs open. I sort of rolled my eyes, but accepted his rare behavior.
For those in the comments who are like myself (and parent's friend) and have hundreds or even thousands of tabs open, I highly recommend the Panorama Tab Groups extension for Firefox:
https://addons.mozilla.org/en-US/firefox/addon/panorama-tab-...
This extension adds back in the functionality that was removed from Firefox half a decade ago. It gives you a visual, 2D-map of arbitrary groups of tabs in a tile layout you can view with "Ctrl-Shift-F". Combined with the backup feature (just in case it crashes or gets corrupted, although this has yet to happen to me) and Firefox's built-in tab session saving option, so long as you have enough memory (I bought 40 gigs of RAM for this laptop after terrible memories of running Firefox on a Chromebook with 4GB of soldered RAM), you can basically browse as though you'll never have to close a tab again, AND also be able to stay organized.
Havelock · 5 years ago
I have the same problem. I'm currently testing out the new tabmanager.io extension that seems to have a lot of potential.
npongratz · 5 years ago
With vim's netrw plugin [0], I'm able to do this:
$ cd ~/tmp/foo
$ touch a b c d e
$ vim .
Then select the file(s) you wish to delete, press D (must be capital "D"), confirm the deletion, and Bob's your uncle.tobestobestobes · 5 years ago
It's a huge leap forward in browser management. Not exactly a replacement for headless browsing/scraping etc, but for personal use, nothing compares. A big contribution to the "personal data management" toolbox.
In the realm of tab management, I use this one liner in console of chrome://inspect every once in a while, then just close all of my tabs:
collection = document.getElementById("pages").getElementsByClassName("subrow"); final_output_tsv = "title\turl\n"; for (let item of collection) {final_output_tsv += `${item.children[0].innerHTML}\t${item.children[1] ? item.children[1].innerHTML : "N/A"}\n`}; copy(final_output_tsv)
Substitute "devices" for "pages" to get android chrome tabsThis way I can backup all my tabs in simple, non-bookmark format and search them using python etc.
dsp_person · 5 years ago
cool this seems handy, but when I try my chrome://inspect/#pages only contains a small subset of tabs out of the few dozen windows I have open. Any tips?
tobestobestobes · 5 years ago
Looks like only recently opened tabs (or some variation on that) show up here. To test, reload all tabs In one window (I used an extension) and check out chrome://inspect again. It's all there. Maybe there's a good reason for not showing all pages in inspect. Who knows. Another problem is that my script grabs page subprocess urls also. I've mainly used this for grabbing my android tabs.
This is an adapted version that skips grabbing subprocesses
collection = document.getElementById("pages").getElementsByClassName("subrow"); final_output_tsv = "title\turl\n"; for (let item of collection) {if(new RegExp("([a-zA-Z0-9]+://)?([a-zA-Z0-9_]+:[a-zA-Z0-9_]+@)?([a-zA-Z0-9.-]+\\.[A-Za-z]{2,4})(:[0-9]+)?(/.*)?").test(item.children[0].innerHTML) === false) final_output_tsv += `${item.children[0].innerHTML}\t${item.children[1] ? item.children[1].innerHTML : "N/A"}\n`}; copy(final_output_tsv)
edit: I used reload all tabs extension with reload all tabs in all windows option turned on. This could get messy.jmercouris · 5 years ago
This is possible in Nyxt browser, :-)
ssalka · 5 years ago
FWIW in Chromium-based browsers you can shift+click tabs to select multiple, then close all selected at once or drag selected to new window
twobitshifter · 5 years ago
The author mentioned dired for emacs which is the perfect tool for this. Is there an equivalent file plugin for vim?
Shared404 · 5 years ago
I'm loving this trend to do more things with filesystems.
There was https://amoffat.github.io/supertag/ [,] which I'm intending to use in my filesharing sftp server, and now this, which seems like something that exposes functionality from a web browser that I would love.
curlinglion · 5 years ago
Same here. I quite like some of the filesystem interfaces Linux provides (cgroups for example)
pjmlp · 5 years ago
KIO and GVfs wave hopeless to the crowd too busy replicating a UNIX V6 experience with a bit of Plan 9/Solaris influence.
anthk · 5 years ago
Ironically this is reimplementing plan9/9fs and everything is a filesystem. If any, this is Unix++.
Also, say hello to FUSE, which tries to mimic that on the userland.
Palomides · 5 years ago
I like it, the plan 9/acme approach seems like it could be pretty powerful with browsers
jwalton · 5 years ago
This is a cool idea. It would be nice to be able to blacklist some tabs though. For example, I wouldn’t want the text of my banks website easily readable by any random process.
popc0rn · 5 years ago
You could probably run your bank website in incognito mode and avoid extensions. I do this all the time because I don't completely trust any of my installed extensions. Even if I did, they are auto-updated and their code can change at any time without any notice.
herewulf · 5 years ago
Good idea. You could also access your bank and other sensitive sites with a different profile:
google-chrome --user-data-dir="/path/to/somewhere/else"
I use this switch and a directory from `mktemp -d` for remote debugging (--remote-debugging-port=1234). The debugging does not disturb my normal browsing and the profile is completely disposable.davidp670 · 5 years ago
This reminds me of Bookmark OS https://bookmarkos.com
chx · 5 years ago
If you are running WSL1, https://github.com/billziss-gh/winfuse is your friend.
Jarred · 5 years ago
A different kind of tab-based filesystem that would be nice:
Expose all the resources used in each tab in a virtual filesystem (JS, CSS, images, HTML, fonts, etc) in a folder for each tab. Basically Chrome Developer Tool's Sources tab but as files and folders on your computer.
This would be great for scraping with headless browsers. It'd let you use shell scripts or your favorite programming language's filesystem library to read/copy assets, rather than writing code with Puppeteer to copy files/data.
It would have to copy from Chrome directly though, rather than re-fetch the content
vosper · 5 years ago
> Basically Chrome Developer Tool's Sources tab but as files and folders on your computer.
Isn’t that what happens when you save a page? Or is that not possible with Puppeteer?
mbreese · 5 years ago
I think they were thinking more along the lines of a live system. Where you could change the settings of the page in real time using the filesystem interface.
cookiengineer · 5 years ago
This sounds actually very similar to what I am building, if you ignore the Chrome part [1] :)
The general idea is to have more persistent caching locally, so that peer offloading (and persistence of offline content) can be guaranteed.
Since yesterday the cache supports multiple versions of each file (with a timestamp), and it will get a UI that allows to navigate back in time for each URL.
wutbrodo · 5 years ago
Wow, this is awesome!
My OS is heavily scripted and keybound, thanks to 15 years of cumulative incremental fixes and a kick-ass WM. The one thing that's frustrated me is the relative black box that my browser represents, and writing a shim between my WM and browser tabs has been on my TODO list for a long, long time (through a couple of aborted attempts due to a combination of Chrome's at-the-time obsolete documentation and probably-necessary security model).
I'm cautiously optimistic that this is going to represent a dramatic step function in ease-of-use of my OS, in the same way that i3 was.
EDIT: I should clarify that I did read the author's note that this is experimental, not secure, etc. I'm mainly just excited about having a jumping-off point to play around with and possibly hack on a little.
amdbcg · 5 years ago
would you mind providing context /docs to some of your fixes and scripts so I can observe/install some of them?
wutbrodo · 5 years ago
I wrote a long response to this but accidentally refreshed my tab, so you're getting an abbreviated response = /
I can give you one of my favorite examples. I have a pretty intense job, and I've struggled to some degree with the way stress eats into both my work productivity and my well-being after work. I wrote this script to mitigate the bouts of workday akrasia that induce me to almost-unconsciously procrastinate, as well as the unfortunate habit of checking work email/Slack after work hours or while on breaks (one of the pitfalls of not physically separating my work and recreational machines).
I use a simple launcher app called gmrun, which allows defining custom protocol prefixes. I've defined a few of these protocols, but my favorite is "m:", which switches "modes" on my laptop. Appending a prefix-string of either "work", "rec", or "all" rewrites my i3 config file to switch to the corresponding "mode" by selectively disabling a set of switch-to-workspace keybindings. It's about 100 lines of straightforward Python code incl docs and newlines, took me half an hour, and it paid for the time I put into it in less than a week. Probably a _dozen_ times a day, I catch myself trying to switch to the workspace that has my messenger apps or personal browser windows, and disabling the keybinding is enough to short-circuit the stress-driven impulse to distract and procrastinate and remember that I am trying to do focused work. It works very similarly for checking my email/Slack after work hours, something I almost never do now for the same reasons.
This is pretty tuned to my situation, OS setup, and personality, but that's pretty much the point: I'm extremely spoiled by Linux, i3, etc due to having a system that's been custom-fitted to my every need every moment of my computing life since late high school. If there's a rough edge, I sand it; if there's an optimization opportunity, I take it (if the ROI seems clearly worth it).
Not to get on my soapbox, but it saddens me a little that so many people I talk to, particularly technical ones, have become disconnected from just how many affordances general-purpose computers can offer without ever being _forced_ to avoid choosing the ease of a one-size-fits-all approach.
javajosh · 5 years ago
Hey, thanks so much for introducing me to the term "akrasia" because it works perfectly to describe a phenomena that happens to me as well. And my solution is similar, if admittedly much lower tech (I comment/uncomment lines of my etc/hosts file to switch modes).
But it was the rest of your post, describing the way in which you're environment has morphed with you over the years, and how you've been able to really dial in your computing experience...it's so striking! There are few people who can say the same. I certainly cannot. I have personally gone through perhaps 3 complete redos in my adult life. But it's disruptive and bad, and I have to admit I feel some envy that you've been able to maintain a single coherent thread of evolution for so long. You must move around incredibly smoothly - I'd be curious to see a video of a few cycles of a build-test-debug cycle with your setup. I would also be curious to know how your file-system is organized. That seems to be the most difficult problem of all!
wutbrodo · 5 years ago
> I have to admit I feel some envy that you've been able to maintain a single coherent thread of evolution for so long
What I find most interesting is how fundamentally it's changed over time while maintaining continuity over those years. In college, I had a tricked-out compiz setup with wobbly windows and a skydome and a wallpaper set via script and a bunch of other cool frills, a far cry from the spartan, productivity-focused keyboard-only setup I have now (I don't even have a wallpaper because a tiling wm means I can never see it). But at any given point, the majority of my workflow was similar to what it was the year before, and many of my config files date back to when I first started using Linux. Even when switching to i3, I already had a very keybinding-heavy workflow, so I just needed to learn one or two extra keybindings to get started, providing a gentle transition from my previous setup until I became more of an i3 power user.
> I'd be curious to see a video of a few cycles of a build-test-debug cycle with your setup
For work, I use a single screen session per "task". Im an MLE working on autonomous vehicles, so my environments vary, but I tend to avoid GUIs so every workflow (except browser-based tools like tensorboard or github code reviews) can fit within my screen sessions. Switching from my dual-monitor workstation to my laptop is pretty seamless; the same screen session is used for each task, but mapped to fewer visible windows at a time.
> I would also be curious to know how your file-system is organized
Nothing too interesting here
javajosh · 5 years ago
>Nothing too interesting here
Have you noticed your organizational approach change over time? I suppose this depends a lot on what you do with your computer, once its all setup!
wutbrodo · 5 years ago
I'd imagine so; the biggest reason this isn't interesting is that I simply don't keep that much on my local filesystem, at least for personal use. I have a repos directory and a scripts directory, and then I pretty much just use the Debian defaults. Perhaps my Google Drive structure would be more interesting, but even there the structure is pretty straightforward, with folders like Finances and Career.
For work it's slightly more complex, but also more driven by the environment tools that work provides (eg a datasets folder that gets mounted into the Docker images I use to train models).
banjomet · 5 years ago
What window manager do you use?
boomboomsubban · 5 years ago
They mention they use i3.
skulk · 5 years ago
I use qutebrowser in one-window-per-tab mode and EXWM[1] as my window manager (with ivy for switching buffers). It still needs some more integration but currently is my favorite solution to this problem.
herewulf · 5 years ago
That's interesting. I've been looking at EXWM recently as I expand my emacs usage (I've been using XMonad for about 10 years). How do you group related tabs together? Or is this somehow not necessary?
Have you noticed a significant difference in memory usage? qutebrowser turns into quite the memory hog over time. I have to periodically restart qutebrowser so my hundreds of tabs go into suspended mode. Even suspended tabs use a good chunk of memory.
Yes, I should be better at closing tabs.
skulk · 5 years ago
I don't group related tabs together; I don't have a list of tabs on my screen anywhere and fuzzy finding with ivy-switch-buffer them is sufficient for me.
Unfortunately, I can't answer your other questions because I'm good at closing tabs :p
herewulf · 5 years ago
Thanks for the reply. I imagine I could tag them somehow and fuzzy find on the tag or a tagged subset. I'm actually looking at the Nyxt browser now also.
I'm a freelancer, so I regularly switch between various active projects or future, potential projects. That results in lots of tabs.
wutbrodo · 5 years ago
I will check out qutebrowser, thank you! I probably can't switch to exwm for ethical/religious reasons :p
Animats · 5 years ago
Next, a browser extension that shows your file system as browser tabs.
tjoff · 5 years ago
Love it, I didn't see and would love to see them also grouped by window, as that is how they naturally get grouped into different tasks (for me at least).
sho_hn · 5 years ago
KDE on Linux used to have something similar in the late 90s - it allowed you to open a website URL as a directory listing, so you could browse the site's asset directories and open image files, etc. Think like a client-side generated version of Apache's index pages, but using your local file manager. It was a plugin to the VFS framework (KIO) the desktop and all the apps use, so it would also work e.g. in Open File dialogs from anywhere within the toolset.
I remember using this regularly to mass-download the images embedded into a page - open the page this way by replacing http:// with a pseudo-protocol, copy all, paste, done.
KDE always came with a lot of VFS trickery like that. Ripping a music CD into MP3s was similar - you'd open the volume in the file manager and see your tracks along with a virtual folder full of MP3 files. The rip and encoding would happen on the fly, and you could do this e.g. straight from the file attach feature in an instant messenger.
Desktop Linux was a lot less friendly to get working smoothly back then compared to now, and feature discovery was by word of mouth more than anything, but it sure felt like living in the future early.
viraptor · 5 years ago
I suspect it would be harder to pull off these days without launching chrome headless for example. Opening the page itself wouldn't include images/resources loaded over JS. It would also not work great with image atlases.
pvorb · 5 years ago
I think KDE still supports Konqueror, which implements things like this. It used to be KDE's file manager and web browser all in one app. I always found this to be quite logical. The underlying abstraction is called KIO. Unfortunately I have no KDE installation at hand, so I can't tell if dowloading all images of a webpage still works as easily. The Audio CD ripping feature should work without problems, though.
Btw Konqueror also used/uses the KHTML rendering engine, which was the foundation for WebKit.
awwaiid · 5 years ago
KHTML came from kde before apple times
mraza007 · 5 years ago
Wow i just learned that today Thanks btw and it’s sad how this did got very little attention
blablabla123 · 5 years ago
I think that was one of the casualties of the painful transition from KDE 3 to KDE 4. I really loved KDE before but KDE 4 was completely unusable for a year and many UX concepts were thrown aboard or have just not been ported, really sad actually. KDE 3 was paradise for power users. I wonder what KDE is like nowadays though
emilsedgh · 5 years ago
I don't think it was KDE 3 -> 4 transition that killed khtml.
I was only around in the last year or two but KHTML [0] was mostly developed by a single volunteer on his spare time (Hi SadEagle in case you're reading this). There were occasional commits by other people but the majority of KHTML's development was done by him.
You see, Konqueror as a web browser didn't even have a single full time developer. That was the beginning of browser wars when Apple and Google were both funding Safari and Chrome with millions of dollars.
It was not really feasible for KHTML to compete with so many new specs being introduced to the web.
It's still fascinating what they achieved though. At the time KHTML was the first to pass ACID2 test and beat competition performance-wise in many aspects.
This is all what I can recall so don't consider it 100% accurate but I'm pretty much sure about the main point, which is that it simply was not viable to develop khtml from a practical standpoint.
[0] Quick note that Konqueror itself was created and maintained by David Faure, who maintained KDELibs (Before it became KDE Frameworks). David was a sponsored full time developer but he wasn't doing a lot of work on KHTML and KJS (The browser aspects of Konqueror)
blablabla123 · 5 years ago
That's fascinating, also that it was written by a single person. I remember how surprised I was when I discovered that Konqueror was at that point in time on par or better in terms of rendering quality compared to Mozilla and others. Also browser speed, memory usage etc. was just flawless. But yeah, IMHO one person projects are doomed to be abandoned unless the person is really dedicated to that project. (glibc maintainer Ulrich Drepper is probably a well-known counter-example)
emilsedgh · 5 years ago
Please note that khtml was a big team effort initially. The single man show was towards the end.
pvorb · 5 years ago
Oh, yeah, I meant to say that, but now I notice that I wasn't clear about this fact.
garaetjjte · 5 years ago
>It used to be KDE's file manager and web browser all in one app.
That was apparently common thing to do, as Microsoft did the same in Windows 98 integrating Explorer with IE.
jle17 · 5 years ago
> It used to be KDE's file manager and web browser all in one app.
It goes further than that. It's pretty much everything in one app. KIOs accesses stuff and KParts shows it. Since many applications expose their functionality using those, it can show whatever content they support and browse it as a filesystem when it's possible.
Web browsing is just KIO doing http and a KPart showing the page. File management is just the file (or smb or sftp or whatever) KIO and the Dolphin KPart. The Kate KPart is used in both cases to either view local text files or web pages source.
But there are others and you can do any combination, including some cool ones.
You can go to man:// or info:// to view man/info pages.
The Akonadi KIO from the PIM suite can be used to browse remote mail or calendar accounts and extract data.
It even used to be possible to use magnet links in HTML (like in <video src="magnet:...">) with kio-magnet or to browse mysql databases and use applications to edit content in cells with libferris, although I don't think those are currently maintained.
amyjess · 5 years ago
So one thing really cool about KIO is that any KDE application can understand KIO URIs.
You can paste any KIO URI into any application's file open dialog box and it'll retrieve it. So for example, you could open any KDE media player, paste in an audiocd:// URI, and it'll play the specified track from your CD.
And it also meant that any application could open remote files without having to manually download them first. Like, if I wanted to open some random file off the web in a text editor, I can just go into Kate, hit Ctrl-O, and paste its URL into the dialog box, and it'll fetch it into a temp folder and open it without me having to first download it manually. This was especially useful for PDFs, because Okular is generally way better than any browser's PDF reader (and I was doing this before most browsers came with PDF readers).
lights0123 · 5 years ago
How does it work internally for non-KDE apps? GNOME's equivalent, GVFS, uses real FUSE paths at /run/user/1000/gvfs. Does KIO do the same thing, or copy them to a temporary directory before sending the path to the application?
feverfew · 5 years ago
Since yesterday there's a stable release of KIO FUSE [0], which does functionally the same as GVFS.
[0]:https://feverfew.home.blog/2020/12/31/kio-fuse-5-0-0-release...
eitland · 5 years ago
> KDE on Linux used to have something similar in the late 90s - it allowed you to open a website URL as a directory listing
On this topic and more generally, I think KDE had gotten way too little credit!
cpach · 5 years ago
I wonder if they were inspired by BeOS.
These days many desktop interfaces feel quite dumbed-down. Still very usable though. But perhaps sometimes with unrealized potential.
pjmlp · 5 years ago
Nope, Telligent, Xerox PARC workstations, ETHZ Oberon based OSes, and Solaris already had this idea surfaced in different ways.
adrianmonk · 5 years ago
> Telligent
Taligent?
pjmlp · 5 years ago
Yeah, typo.
cpach · 5 years ago
Cool! TIL.
quantified · 5 years ago
Which supports your feeling that the current (dominant) systems are dumbed-down. I don’t want to think about the security implications of the carious implementations on this long holiday weekend... but if we needed to spend less energy on security we could have nicer toys.
pjmlp · 5 years ago
They aren't dumbed-down, the features are there, used on macOS, Windows, to certain extent by iOS and Android IPC, GNOME and KDE apps, they just aren't used by those that think using twm clones and the CLI are the epitome of UNIX desktop experience.
bayindirh · 5 years ago
> Ripping a music CD into MP3s was similar - you'd open the volume in the file manager and see your tracks along with a virtual folder full of MP3 files.
AudioCD KIO is still working the same way. I'm ripping an old audio CD of mine to FLAC as I write this comment.
KDE's one of the oldest and best maintained feature is KIO backend. It's still alive and kicking as hard as in 3.5.x days.
ognarb · 5 years ago
Disclainer: KDE developer
Yeah, KIO is an awesome piece of software. Yesterday, a fuse interface was released[1] so that non-KDE software in Plasma also get most of the benefits of KIO.
And speaking of browser tabs, Plasma Browser integration allows to switch to an open tabs from Krunner directly and it works with Firefox, Chrome and Microsoft Edge.
[1]: https://feverfew.home.blog/2020/12/31/kio-fuse-5-0-0-release...
chenxiaolong · 5 years ago
I had no idea kio-fuse was being worked on. This is awesome! gvfs (and its FUSE implementation) was my favorite feature of GNOME and was the reason I primarily used Nautilus on KDE on my work VM.
phatfish · 5 years ago
Yes, finally in 2020 Dolphin can open a file from an SMB shared folder without making a local copy, which basically made KDE unusable in any environment that involved editing files on a Windows share.
Took a while but it does work, bar a few minor issues. I have problems with certain applications not understanding Dolphin has already authenticated to a share. For example VLC will only open a file if the URI to the share contains the user name required to authenticate (smb://user@fileserver/Video).
feverfew · 5 years ago
Could you expand on this by filing a bug report[0]? In particular, noting exactly the location VLC is opening (via Ctrl+I).
[0]: https://bugs.kde.org/enter_bug.cgi?product=kiofuse&component...
severino · 5 years ago
Reading your comment, it also came to my mind this inter-process communication from KDE called DCOP, which allowed you to call methods from KDE applications supporting DCOP from the command line or shell scripts. For example, the Konqueror web browser exposed functions to open tabs, navigate to URLs... instant messaging applications allowed you to query your contacts' online status, send a message, the music player would let you control the playlist, etc.
It then (IIRC 15 years ago) became deprecated in favor of DBUS, but I remember it was not as straightforward and simple to use as DCOP was, and also the applications, at least by the time, weren't supporting lots of useful operations with DBUS.
pjmlp · 5 years ago
The problem is that too many dump GNOME and KDE for their twm flavour window manager and then it is no wonder that these ideas get lost among GNU/Linux users.
anthk · 5 years ago
Meh, I just remote-mount everything with stuff like rclone, then everything is a VFS kinda like plan9.
silon42 · 5 years ago
perhaps they shouldn't be tied to a specific WM or even a DE.
pjmlp · 5 years ago
Perhaps GNU/Linux should decide what it wants to be, besides yet another UNIX kernel clone.
That is how Android and ChromeOS happen, or FOSS developers end up buying a BSD based proprietary desktop OS, or even Windows based systems, to develop software for GNU/Linux based cloud environments.
anthk · 5 years ago
That's not a GNU/Linux issue, BSD's have KDE too.
Also, back in the day you could compile and run KDE perfectly on Solaris and Irix.
>or even Windows based systems, to develop software for GNU/Linux based cloud environments.
I/O is still crappy and limited.
easton · 5 years ago
Heck, KDE is even available on Windows (now just the applications, but at one point you could run Plasma to a certain degree IIRC).
pjmlp · 5 years ago
Ideas like /proc and ToolTalk come from Solaris, no need for KDE to get inspired.
Irix had similar ideas as well.
That is the thing, these UNIX workstations had a whole stack experience, not what Linux or BSD ever were or are.
kps · 5 years ago
/proc came from Version 8 UNIX.
pjmlp · 5 years ago
I stand corrected, thanks.
anthk · 5 years ago
>That is the thing, these UNIX workstations had a whole stack experience, not what Linux or BSD ever were or are.
Uh, Irix with 4DWM and limited DE's were not as powerful as a FreeBSD workstation with KDE3. Not even close.
People compiled JWM, IceWM and KDE on Irix and Sparc machines because 4DWM and CDE were horrendously limited and slow.
Also, Urxvt ran circles on dterm on cpu/memory usage. Much, much snapppier and faster.
pjmlp · 5 years ago
Yeah using Inventor on FreeBSD was blazingly fast.
stretchcat · 5 years ago
> Perhaps GNU/Linux should decide
GNU/Linux is an abstract idea, not a person, organization, or even community. GNU/Linux cannot 'decide' anything.
If you want something else, you should use something else. As you mention, popular alternatives exist.
caoilte · 5 years ago
KDE 4.0 dumped me.
wazoox · 5 years ago
I think the first OS with this functionality to be IRIX 6.3 in early 1996. It integrated Netscape Navigator to the 4DWM file manager, and allowed you to browse both HTTP and FTP, and also audio CDs and even audio DATs if you had a DDS drive!
Klasiaster · 5 years ago
And GNOME has GIO which you can not only use with most GNOME apps but also on the command line:
gio help [COMMAND]
gio version
gio cat LOCATION...
gio copy [OPTION...] SOURCE... DESTINATION
gio info [OPTION...] LOCATION...
gio list [OPTION...] [LOCATION...]
gio mime MIMETYPE [HANDLER]
gio mkdir [OPTION...] LOCATION...
gio monitor [OPTION...] [LOCATION...]
gio mount [OPTION...] [LOCATION...]
gio move [OPTION...] SOURCE... DESTINATION
gio open LOCATION...
gio rename LOCATION NAME
gio remove [OPTION...] LOCATION...
gio save [OPTION...] DESTINATION
gio set [OPTION...] LOCATION ATTRIBUTE VALUE...
gio trash [OPTION...] [LOCATION...]
gio tree [OPTION...] [LOCATION...]dopidopHN · 5 years ago
Han, I completely forgot I used to do that. Indeed, that type of feature felt incredibly powerful back then. And Browser tabs were new anyway. ( Limited to Opera only IIRC )
22c · 5 years ago
I had been looking for a way to "scriptably" sort the Firefox tabs I have open. Unfortunately by cursory glance this would not allow us to change the order of tabs (AKA the index).
Very cool idea though and looking forward to seeing what comes of it.
loa_in_ · 5 years ago
In this post someone mentioned brotab which does exactly that.
22c · 5 years ago
Thanks, I'll check it out!
TekMol · 5 years ago
What is the tool used in the example where they select files and then delete them?
https://omar.website/tabfs/doc/delete.mp4
Ah, I see now. It is called "dired". I wonder if it can be used standalone, without emacs.
freetonik · 5 years ago
You might like Ranger[1]. It's not dired, but has similar rich set of features.
mgaw · 5 years ago
There is also `vidir` which is part of `moreutils`:
unhammer · 5 years ago
You could always
emacs --eval '(dired ".")'
to immediately start emacs-dired in this directory :-)githubalphapapa · 5 years ago
Also:
$ cat ~/bin/dired
#!/bin/bash
# Launch Dired in a plain Emacs configuration.
# Arguments are passed to Emacs, e.g. "-nw" works as expected.
emacs -q "$@" \
--eval "(dired default-directory)" \
--eval "(defun kill-window-or-emacs () (interactive) (if (one-window-p) (kill-emacs) (delete-window)))" \
--eval "(setq dired-dwim-target t delete-by-moving-to-trash t)" \
--eval "(define-key dired-mode-map (kbd \"q\") #'kill-window-or-emacs)"lilyball · 5 years ago
This is a really cool idea. Any chance of supporting Safari?
adamretter · 5 years ago
Absolutely brilliant. Thank you
blacklight · 5 years ago
I don't get why it requires to be loaded as a temporary extension in order to work. Both Chrome and Firefox nowadays only allow permanent installation for extensions that are present on the store.
I know that both the Mozilla and Chrome stores have become increasingly strict in terms of what the uploaded extensions can do (I've gone through a quite bumpy road to get my extension published), but if you submit the extension to them and make sure that it is compliant with their policies I think that there would be no need to manually load the manifest from developer mode.
aljungberg · 5 years ago
It would be cool if the DOM was exposed. Then you could write one liner bash scripts to do simple tasks like “download all images” or “delete script tags referencing spammyads.js”, all with nothing more advanced than find, cp, rm and mv in the shell. E.g.
cp html/body/*/img/.hero-img/hello.png ~Downloads/
You would need some clever way to express the DOM with ids and classes etc but it could be done with some subdirectory structure and long names, sometimes having multiple names for the same thing.
bakoo · 5 years ago
Cool idea, but I'd worry about all the malformed markup.
dotancohen · 5 years ago
I'm finding malformed markup has not been a concern of mine for many years. It used to be bad, real bad, but now I cannot think of the last time that I had to deal with malformed markup while scraping.
cldellow · 5 years ago
That's a good concern, but I think we can happily ignore it.
The DOM represents the tree structure derived from the markup by the browser, so dealing with malformed markup wouldn't be the problem of this extension, it'd be the problem of the browser it's integrating in to.
OOPMan · 5 years ago
This is exactly the kind of dumb idea I expected to see on HN
nyanpasu64 · 5 years ago
"mnt/tabs/by-id/*/title.txt" asks your shell to expand a wildcard match, generating a list of files holding the title of each tab. If I were to feed it into a command-line app, I might start running into command length limits.
Would it work better as a "relational database" than a hierarchical tree filesystem? I noticced that "by-id" and "by-title" and "last-focused" are several views into an underlying source of data, and changing one view causes other branches of the filesystem to change automatically. Maybe it could be more cleanly modeled as a relational data store with one row per tab, and columns with different meanings. Then use SQL, or a cleaner notation for relational algebra, to query this interface.
The downside is that you can no longer use command-line utilities that operate on files (find/grep, fd/rg).
rektide · 5 years ago
/dev/disk and /dev/input both have a bunch of view subdirectories on my Debian box. the idea of a symlink itself suggests denormalization, suggests views, suggests relations, so perhaps we should try to loosen up our mental model of what a file-system is some?
i upvoted because it's an interesting question, but to me i would like good patterns for how to express data & views on the file-system. data goes into databases to die, alas. it remains tragically single consumer, one database one application. not that it has to be, but that's how things usually are. the file system by contrast is exposed system wide, & requires no app configuration or discovery to consume data on it (I guess choosing a file might sort of count?). there are a wide range of command line and gui tools built in to the os for exploring & manipulating the file system.
perhaps we could make a good sql on the file-system plugin, to make sql data more accessible across the system? :)
rhabarba · 5 years ago
Finally, I can simulate 9P on worse browsers.
dash2 · 5 years ago
Slightly OT: I would really like an alt-tab command that cycled through my browser tabs as well as my app windows. Nowadays a single website is more like an app than the entire web browser is, so I think this metaphor would make sense.
ALittleLight · 5 years ago
ctrl and page up or down move forward and back across tabs in most browsers. ctrl (or alt) + number switches to that tab.
dash2 · 5 years ago
But I want something that integrates browser tabs and other ordinary app windows. A single command for everything.
popc0rn · 5 years ago
This is an awesome idea and great work! I didn't even know I needed this until now. Now I even feel like something similar should be a regular part of a web browser, just like web development tools :)
sub7 · 5 years ago
This is the best idea I've seen all year.
You can make it so that every website is fully searchable and the data easily viewable/extractable. Set up the marketplace for user created plugins, the possibilities are endless.
I would happily contribute $25k to this. reply if interested.
samwhiteUK · 5 years ago
> This is the best idea I've seen all year.
Ba-dum tsshhh
jmercouris · 5 years ago
If you are serious about spending 25k, please contact me, we are working on the Nyxt browser. Email us at hello@atlas.engineer
b3n · 5 years ago
How can I control the Nyxt browser with the file system?
runeks · 5 years ago
IMHO an extension for existing browsers seems like a better idea than creating a new browser.
Why did you choose the latter approach?
generalizations · 5 years ago
Not involved, but it's nice to see alternative browsers that break the firefox/chrome duopoly.
herewulf · 5 years ago
I'm not involved either, but after doing some reading it seems the project aims to create a completely customizable browsing interface for power users that would be impossible with extensions because of the limitations that Firefox/Chrome impose.
herewulf · 5 years ago
Thanks for sharing your project. I'm a long time Qutebrowser user (and Vimperator/Pentadactyl, etc. before it) and fascinated by the possibilities of Emacs style extensibility for browsing.
It's a shame that you all haven't gotten more traction on HN despite regularly making submissions for major developments over the years. This thread[1], though outdated, made for some interesting reading.
Best of luck for future development. I'm looking forward to digging into Nyxt very soon!
KitDuncan · 5 years ago
I'd be willing to back a patreon that explores this concept further. I'd be worried about browser updates breaking things though.
jmercouris · 5 years ago
If you are interested, we are thinking about exploring this concept in Nyxt, please voice your support on our GitHub (leave an issue or otherwise). https://github.com/atlas-engineer/nyxt
sfgweilr4f · 5 years ago
I didn't see any cookie or local storage management. Is that included?
mcdevilkiller · 5 years ago
Perfect example of "everything is a file", imo.
ellis0n · 5 years ago
TabFS is what I was looking for LiveComment. With a simple frontend and backend plugin for livecomment, you can manage your 800 tabs in one tab with iframe preview
dotancohen · 5 years ago
This is the type of tool that I would love to love.
But experience tell me that any tool that interfaces with the browser will break in a year and a half. Depending on this tool will put me into a situation where I'll have to decide between preserving my workflow or updating my browser and possibly other software.
Maybe once there's more than 5 forks or a few hundred Github stars, I'll start to see where I can incorporate it into my workflow. But as it is, I've become wary of super-useful tools that are not yet in widespread use.
bjornsing · 5 years ago
Interesting idea that could be applied to a lot of other things... You could imagine a unified /proc-like file system for a big hairy backend for instance.
arendtio · 5 years ago
Would be cool if it was compatible with Tree Style Tabs ;-)
In fact, one feature I am missing in Tree Style Tabs is the ability to save a list of tabs as a text file to archive it and to open/import it at a later point in time again.
Somehow TabFS feels like it could be used to achieve that.
CDRdude · 5 years ago
It seems to be compatible with tree style tabs. I'm not sure how to import, but this seems to do a reasonable job of exporting: ls | xargs -I {} paste {}/url.txt {}/title.txt
felixr · 5 years ago
I really like the idea and it made me realize that I want a simple interface to list/switch/create tabs from custom tools.
However, I think a less powerful extension that just subscribes to `chrome.(tab|window).*` events and reports them to a local server and listens for commands (e.g to create tabs) would be enough. Not using the debug api and not exposing more than tabs, windows and URLs.
The reporting bit of the extension could be as simple as a bunch of listeners a la:
chrome.tabs.onSelectionChanged.addListener(
(tabId, props) => fetch('http://localhost:8118/report?'+JSON.stringify([tabId, props])));skovorodkin · 5 years ago
Probably not as powerful as TabFS, but there's also https://github.com/balta2ar/brotab:
> bt (brotab = Browser Tabs) is a command-line tool that helps you manage browser tabs. It can help you list, close, reorder, open and activate your tabs.
It supports both Chrome and Firefox. I use it to get titles of tabs that make some sound in Firefox.
nicolewhite · 5 years ago
Neat! Your example of closing all Stack Overflow tabs reminds me of a little extension I made a while ago to manage tabs by domain:
https://chrome.google.com/webstore/detail/manage-tabs-by-dom...
Which would allow you to easily close all tabs from Stack Overflow.
incanus77 · 5 years ago
I’m excited to dig into this a bit and possibly add Safari support. I recently built a script (https://github.com/incanus/fari) for Curses-based (terminal) navigation of Safari tabs with hopes of adding management functionality in the future.
amelius · 5 years ago
I think the most useful extension of this would be to have any DOM node become a node in the filesystem.
selfishgene · 5 years ago
Fantastic idea! As someone who was just starting to slowly learn their way around the Chrome API, your timing couldn't be better either.
Look forward to seeing what else gets implemented on your todo list.
nudpiedo · 5 years ago
It looks like a fancy way to create a reverse shell
bergstromm466 · 5 years ago
This is why we should move to Holochain and DAT: it allows this + more.
brokenkebab · 5 years ago
Smart! Though, it would be nice to have full html besides txt.
antpls · 5 years ago
> more persistence stuff. as I said earlier, it would also be cool if you could put arbitrary files in the subtrees, so .git, Mac extended attrs, editor temp files, etc all work. make it able to behave like a 'real' filesystem. also as I said earlier, some weirdness in the fact that tabs are so disposable; they have a very different lifecycle from most parts of my real filesystem. how to nudge that?
It would be interesting to have a "persistent" layer where you could store stuff related to a domain. For example you would store userscripts in "ycombinator.com" folder, and they would load each time a tab of that domain is open. That would be a clean organization.
Then, if websites are made with TabFS in mind, the gap between the concepts of "apps" and "website" is probably filled.
javajosh · 5 years ago
As an aside, nice vanity URL. I find myself having a Patrick Bateman-esque moment of business-card envy, but for URLs. That domain is just so...good. .com too often implies a business, .org a non-profit, etc but .website is just saying it is a website, not necessarily for anyone or anything (although presumably created by someone). Sadly someone is squatting josh.website or I would own it right now.
da39a3ee · 5 years ago
> (now... how would you do this without TabFS? I honestly have no idea, off the top of my head. like, how do you even get the titles of tabs? how do you tell the browser to close them?)
chrome-cli
chmod775 · 5 years ago
Just a heads up that this is a potential security vulnerability because it essentially allows sites to put arbitrary files into your file system.
This might cause certain software to automatically read them (for instance to generate previews) and allow an attacker to exploit vulnerabilities in that software.
Think of an unsandboxed process generating a preview for a PDF file...
saagarjha · 5 years ago
In an ideal system, that process would be sandboxed of course.
MisterTea · 5 years ago
Interesting use of a file server.
On plan 9 we use a file server called webfs[1] which serves web pages as a series of directories containing files of parsed html and so on. It's basically a tabbed browser back end. A front end such as mothra or netsurf[2] can then use webfs to abstract the html protocol and replaces post/get with read()/write(). And it can be served over a network so you could run a webfs "server" and let multiple clients on multiple machines surf the web through a single webfs server. Bonus is you can also do webstuff from shell scripts so the back end is used by shell programs like hget which is the plan 9 equivalent to wget :-)
abvr · 5 years ago
Slightly unrelated, but as a fan and user of Edge, I really miss their old 'Save tabs for later' feature.
oliv__ · 5 years ago
I haven't seen this included in the "what you can do with this" section but my first thought was that you could use git in there and save your usage over time.
twobitshifter · 5 years ago
If you have many tabs open, it’s good to schedule some time to put these into a bookmark manager, memex, org brain, tiddlywiki, or equivalent. I’ve found they’re open usually because the work on each tab is unfinished. I’ve got to read this, I want to remember this, or this could help me with a project, are the categories my tabs often fall into. An inbox zero approach to tabs is what I’m working towards.
jerjerjer · 5 years ago
Cool.
I'd prefer the same info as a relational DB though.