reddit / emacs

Spookfox: Manage firefox tabs using org-mode

verticaleyes · 2022-03-09 18:44
verticaleyes · 2022-03-09 18:50
This is my first real elisp project (where I actually wrote lisp instead of copying it from here and there). I started writing this package as a "quick weekend project", but it ended up taking a lot more. It isn't feature-complete yet, or too stable, but I got it to a somewhat presentable state today, so I thought I'd share it with you guys. Feedback, ideas, testing and code-reviews are very welcome. I hope you guys like it!
KindlyRepeat · 2022-03-09 19:09
That sounds great ! Would it work if I open new windows instead of tabs ?
verticaleyes · 2022-03-09 19:17
It won't right now, since I was trying to get a MVP working and my personal use-case is almost all single window. But I did have this in mind and to implement multiple windows support, one won't have to fight the existing code.
wonko7 · 2022-03-09 21:36
looks great! I started something similar but yours is way better, thanks :)
Aglets · 2022-03-09 23:38
I've always wanted to integrate Firefox more closely with emacs. Thanks for sharing, will be watching future updates.
wysteriary · 2022-03-10 04:54
Would love to see integration with Tree Style Tabs, it's an indispensable firefox extension for me and letting it be managed by org-mode would be such an obvious upgrade: https://addons.mozilla.org/en-US/firefox/addon/tree-style-tab/ It even has an API for letting other extensions improve on it: https://github.com/piroor/treestyletab/wiki/API-for-other-addons
verticaleyes · 2022-03-10 05:05
I used to use tree-style-tabs long time back, but every now and then I'd lose all my tabs, which was extremely frustrating. I also wanted better collaboration b/w Emacs and my browser, for tabs and other things, so I started spookfox. Implementing tab management seemed like a quick thing to do (it wasn't, it is quite tricky and very time consuming to get right) so I chose that. I will look at tree-style-tab again, may be things are different now.
Atemu12 · 2022-03-10 12:34
Could you make a video showcase of sorts? Not near a Linux machine atm. and I'm not really willing to let alpha-state software loose on my precious Firefox tabs..
verticaleyes · 2022-03-10 13:01
Definitely! I will create a proper demo once priorities listed below are resolved. In the meanwhile, I just made a super-quick screen-recording for you https://youtu.be/G-XnjB1EYTM I have 3 priorities before I try to release it on melpa and mark it ready for public usage. 1. I am hunting down a heisenbug, which make the firefox addon stop giving me tab-change events (so new tabs don't sync up in Emacs) [#14](https://github.com/bitspook/spookfox/issues/14). 2. Getting tab-groups to behave right; right now the custom order in org-mode gets lost when a tab-group is opened. [#15](https://github.com/bitspook/spookfox/issues/15) 3. Adding a small UI on browser for more control [#12](https://github.com/bitspook/spookfox/issues/12)
lilytex · 2022-03-11 21:08
I've used it for some time now, and I haven encountered any errors. Now you can save your tree as a folder of bookmarks, and in the name you have >, >>, >>>, ... depending on the indentation of the tab, so that it preserves the tree structure, and actually supports copy to clipboard as an org tree with [another extension](https://github.com/piroor/copy-selected-tabs-to-clipboard)
Greenskid · 2022-10-15 19:38
This is a great project. It would be great if it supported other browsers as well (I am a Chrome user). Of course I understand you are implementing it for you own usage, but I think you are on to a great idea. I wonder if interfaces could be defined so that folks could provide different browser implementation extensions. Another promising project that someone started up that uses an Org file as a backend is [https://braintool.org/](https://braintool.org/) \- but the author took in a different direction that I was looking for i.e. I am looking for an automatic generation of tab trees just like [http://tabsoutliner.com/](http://tabsoutliner.com/) \- with control via Emacs (just like your project).
verticaleyes · 2022-10-15 21:01
If you're willing to get your hands dirty, porting it to Chrome should not be too difficult. I tried to do it a few days back, but it turned out to be not too trivial either. But it should still be doable with a couple hours put in to rename few things (e.g `browser` global is called `chrome` in chrome extensions, some permissions might be different, minor changes in `manifest.json` etc). I chose not to pick that battle right then, because I don't know if anyone other than me is even using it. Recently I've moved spookfox from using native-messaging to instead use websockets. This has some consequences (since websockets server is running within Emacs), but also make it more portable. Different browser extensions (for browsers who don't support web-extensions) should be possible as long as they can interact with this websockets server. I do itend to support Chrome eventually though. I do use it once in a while and would be nice if I could access my tabs in Chrome as well. Right now my focus is to produce a nice documentation, so someone else could also use it fully. Spookfox is more than just manage-tabs-in-org-file; that is just one of the "apps" in it. It is possible to build more. e.g recently I added a bit to help me take notes for youtube videos, by automatically inserting timestamp links in my note buffer. Check `spook--insert-yt-ts-note` [here](https://github.com/bitspook/spookmax.d/blob/master/readme.org#applications)