[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)