[HN Gopher] TabFS: Mount your Browser Tabs as a Filesystem
       ___________________________________________________________________
        
       TabFS: Mount your Browser Tabs as a Filesystem
        
       Author : thesephist
       Score  : 999 points
       Date   : 2021-01-01 02:48 UTC (20 hours ago)
        
 (HTM) web link (omar.website)
 (TXT) w3m dump (omar.website)
        
       | cocktailpeanuts wrote:
       | 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".
        
         | npongratz wrote:
         | 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.
         | 
         | [0] https://www.vim.org/scripts/script.php?script_id=1075
        
         | yudlejoza wrote:
         | 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').
        
           | mulmen wrote:
           | 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 wrote:
             | 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.
             | 
             | http://getamna.com
        
           | frombody wrote:
           | 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 wrote:
             | 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.
        
           | rohan1024 wrote:
           | > 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 wrote:
             | 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 wrote:
               | 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 :)
        
           | _flux wrote:
           | 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.
        
         | Shared404 wrote:
         | 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 wrote:
         | 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 wrote:
         | 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 wrote:
           | 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 wrote:
             | I'm not sure an addon is necessary for that. Firefox
             | automatically unloads any tab that hasn't been used in a
             | while.
        
         | polm23 wrote:
         | Onetab is great for dealing with that.
         | 
         | https://www.one-tab.com/
        
         | m463 wrote:
         | 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 wrote:
           | 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 wrote:
           | I can have as much as 100 tabs open, depending on what I'm
           | doing.
        
           | weaksauce wrote:
           | 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
        
         | Havelock wrote:
         | I have the same problem. I'm currently testing out the new
         | tabmanager.io extension that seems to have a lot of potential.
        
         | tobestobestobes wrote:
         | 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.getElementByI
         | d("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 tabs
         | 
         | This way I can backup all my tabs in simple, non-bookmark
         | format and search them using python etc.
        
         | [deleted]
        
         | eitland wrote:
         | > 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 wrote:
           | 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 wrote:
           | 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.
        
         | rasz wrote:
         | >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.
        
           | saurik wrote:
           | 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).
        
           | superkuh wrote:
           | 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.
        
             | mcdevilkiller wrote:
             | You can use auto tab discard. I've done 1500 tabs on an 8GB
             | windows machine.
        
             | eitland wrote:
             | 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.
        
         | axbytg wrote:
         | > 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?
        
           | blackrock wrote:
           | 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.
        
             | noisy_boy wrote:
             | This is exactly how I "partition" my work; makes closing
             | logically related tabs super simple too - just close the
             | window related to the "topic".
        
             | tveyben wrote:
             | 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...)?
        
               | catchmeifyoucan wrote:
               | Try Amna. https://getamna.com.
               | 
               | You can do this per chrome window and bubble the tasks up
               | to a task.
        
               | noisy_boy wrote:
               | 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...
        
           | Firerouge wrote:
           | Chrome only preserves browsing history for 90 days. Keeping
           | tabs open can work around that limitation
        
             | samb1729 wrote:
             | 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?
        
               | ossopite wrote:
               | 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
        
               | brw wrote:
               | "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.
               | 
               | [0] https://support.google.com/chrome/answer/95589
               | 
               | [1] https://myactivity.google.com/myactivity
        
               | saurik wrote:
               | Damn, that's ridiculously evil... why the hell am I only
               | able to get basic functionality through a cloud service?!
        
           | imtringued wrote:
           | 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.
        
             | [deleted]
        
             | opan wrote:
             | 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.
        
           | mrmonkeyman wrote:
           | It's their planning and todo solution. I'd bookmark things
           | and make notes in an actual agenda but to each his own I
           | guess.
        
           | eitland wrote:
           | > 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?
        
           | wutbrodo wrote:
           | 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 wrote:
             | 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.
        
               | samb1729 wrote:
               | > 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.
        
               | franga2000 wrote:
               | 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.
        
             | benedikt wrote:
             | > 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
        
             | edrobap wrote:
             | 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.
        
             | samb1729 wrote:
             | 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 wrote:
               | 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 wrote:
               | 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.
        
             | iam-TJ wrote:
             | 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.
             | 
             | [0] https://www.zotero.org/
        
           | saagarjha wrote:
           | 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 wrote:
             | 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.
        
         | aoeusnth1 wrote:
         | 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).
        
         | ksec wrote:
         | 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 wrote:
           | 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 wrote:
             | 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.
        
           | theelous3 wrote:
           | > 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.
        
           | zeckalpha wrote:
           | 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 wrote:
             | 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 )
        
         | netsharc wrote:
         | 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.
        
       | aljungberg wrote:
       | 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 wrote:
         | Cool idea, but I'd worry about all the malformed markup.
        
           | cldellow wrote:
           | 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.
        
           | dotancohen wrote:
           | 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.
        
         | OOPMan wrote:
         | This is exactly the kind of dumb idea I expected to see on HN
        
       | Shared404 wrote:
       | 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.
        
         | pjmlp wrote:
         | KIO and GVfs wave hopeless to the crowd too busy replicating a
         | UNIX V6 experience with a bit of Plan 9/Solaris influence.
        
           | anthk wrote:
           | 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.
        
         | curlinglion wrote:
         | Same here. I quite like some of the filesystem interfaces Linux
         | provides (cgroups for example)
        
       | nicolewhite wrote:
       | 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.
        
       | nudpiedo wrote:
       | It looks like a fancy way to create a reverse shell
        
       | Palomides wrote:
       | I like it, the plan 9/acme approach seems like it could be pretty
       | powerful with browsers
        
       | davidp670 wrote:
       | This reminds me of Bookmark OS https://bookmarkos.com
        
       | sfgweilr4f wrote:
       | I didn't see any cookie or local storage management. Is that
       | included?
        
       | lilyball wrote:
       | This is a really cool idea. Any chance of supporting Safari?
        
       | dotancohen wrote:
       | 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.
        
       | nyanpasu64 wrote:
       | "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 wrote:
         | /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? :)
        
       | arendtio wrote:
       | 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 wrote:
         | 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
        
       | incanus77 wrote:
       | 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.
        
       | chx wrote:
       | If you are running WSL1, https://github.com/billziss-gh/winfuse
       | is your friend.
        
       | popc0rn wrote:
       | 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 :)
        
       | amelius wrote:
       | I think the most useful extension of this would be to have any
       | DOM node become a node in the filesystem.
        
       | Jarred wrote:
       | 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
        
         | cookiengineer wrote:
         | 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.
         | 
         | [1] https://github.com/tholian-network/stealth
        
         | vosper wrote:
         | > 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?
        
           | [deleted]
        
           | mbreese wrote:
           | 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.
        
       | felixr wrote:
       | 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])));
        
       | tjoff wrote:
       | 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).
        
       | wutbrodo wrote:
       | 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 wrote:
         | would you mind providing context /docs to some of your fixes
         | and scripts so I can observe/install some of them?
        
         | banjomet wrote:
         | What window manager do you use?
        
           | boomboomsubban wrote:
           | They mention they use i3.
        
       | sub7 wrote:
       | 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 wrote:
         | > This is the best idea I've seen all year.
         | 
         | Ba-dum tsshhh
        
       | KitDuncan wrote:
       | I'd be willing to back a patreon that explores this concept
       | further. I'd be worried about browser updates breaking things
       | though.
        
       | [deleted]
        
       | [deleted]
        
       | sho_hn wrote:
       | 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.
        
         | pjmlp wrote:
         | 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 wrote:
           | Meh, I just remote-mount everything with stuff like rclone,
           | then _everything_ is a VFS kinda like plan9.
        
         | bayindirh wrote:
         | > 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 wrote:
           | 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...
        
         | wazoox wrote:
         | 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!
        
         | cpach wrote:
         | 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 wrote:
           | Nope, Telligent, Xerox PARC workstations, ETHZ Oberon based
           | OSes, and Solaris already had this idea surfaced in different
           | ways.
        
             | adrianmonk wrote:
             | > _Telligent_
             | 
             | Taligent?
        
         | severino wrote:
         | 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.
        
         | eitland wrote:
         | > 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!
        
         | viraptor wrote:
         | 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.
        
           | amyjess wrote:
           | 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 wrote:
             | 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 wrote:
               | 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...
        
           | pvorb wrote:
           | 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 wrote:
             | KHTML came from kde before apple times
        
               | pvorb wrote:
               | Oh, yeah, I meant to say that, but now I notice that I
               | wasn't clear about this fact.
        
               | mraza007 wrote:
               | Wow i just learned that today Thanks btw and it's sad how
               | this did got very little attention
        
       | rhabarba wrote:
       | Finally, I can simulate 9P on worse browsers.
        
       | 22c wrote:
       | 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.
        
       | dash2 wrote:
       | 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.
        
       | jwalton wrote:
       | 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 wrote:
         | 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.
        
       | selfishgene wrote:
       | 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.
        
       | mcdevilkiller wrote:
       | Perfect example of "everything is a file", imo.
        
       | TekMol wrote:
       | 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.
        
         | mgaw wrote:
         | There is also `vidir` which is part of `moreutils`:
         | 
         | https://joeyh.name/code/moreutils/
        
         | unhammer wrote:
         | You could always                    emacs --eval '(dired ".")'
         | 
         | to immediately start emacs-dired in this directory :-)
        
           | githubalphapapa wrote:
           | 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)"
        
         | freetonik wrote:
         | You might like Ranger[1]. It's not dired, but has similar rich
         | set of features.
         | 
         | [1]: https://github.com/ranger/ranger
        
       | blacklight wrote:
       | 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.
        
       | dheera wrote:
       | 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 wrote:
         | >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 wrote:
           | Another trick is to use mobile safari, because mobile safari
           | only supports HLS, which is more easily downloadable.
        
         | ianbicking wrote:
         | 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
        
       | Animats wrote:
       | Next, a browser extension that shows your file system as browser
       | tabs.
        
       | ellis0n wrote:
       | 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
       | 
       | https://www.npmjs.com/package/livecomment
        
       | bjornsing wrote:
       | 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.
        
       | bergstromm466 wrote:
       | This is why we should move to Holochain and DAT: it allows this +
       | more.
        
       | adamretter wrote:
       | Absolutely brilliant. Thank you
        
       | skovorodkin wrote:
       | 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.
        
       ___________________________________________________________________
       (page generated 2021-01-01 23:01 UTC)