From Vimperator to Tridactyl (2018)
nullprogram.com
nullprogram.com
This plugin could ship with an initial set of commands like show-bookmarks, search-page, etc.. The plugin would also provide a facility for easily adding commands written in JS and installing 3rd party commands.
The user community could also share their custom commands in a central location.
I guess the big question would be, does it make more sense to add this plugin to Firefox, upgrade Conkeror to not require XUL or add Gecko to Emacs.
Otherwise it will do 90% of what you're asking.
But you're right, there's really no difference between typing Meta-x and colon; It's the same concept.
The documentation last time I checked was roughly novella length, and it could definitely do with some work. You currently can't escape line breaks in our scripts which limits their complexity.
If you install Tridactyl, the `:tutorial` is the best place to start. Maybe we should add a page on adding your own commands.
> upgrade Conkeror to not require XUL
That's not strictly necessary. Firefox still uses XUL and will probably continue to do so, for a long time. You can still build applications that rely on XUL and run them, for instance with "firefox -app application.ini". Both Thunderbird and Zotero have upgraded to rely on FF60. From a UI toolkit/architectural point of view, Conkeror doesn't really need anything more than Firefox, even if it's arranged rather differently, so as long as XUL in mozilla's codebase can support Firefox, it could also support Conkeror. The only™ issue is that while previously Firefox didn't care much about breaking third-party applications, when changing XUL, now (post FF57), they don't care at all, with the very partial exception of issues affecting Thunderbird. (I'm not assigning blame — I understand the problems facing Mozilla.) Hence all of Conkeror's developers have presumably decided to give up. However, I'm not sure whether keeping up with Firefox's changes might not be easier than migrating to, say, Electron...
> add Gecko to Emacs
Emacs can already embed WebKit and it's very rarely used.
[0] https://hacks.mozilla.org/2012/08/new-firefox-command-line-h...
[1] https://blog.nightly.mozilla.org/2018/09/28/the-developer-to...
Absolutely not.
Clearly this extension should be called Escape-Colon.
.. which is actually funnier in more ways than I thought ..
hmm.
The extra permission is just so we can include a new (unbound by default) find mode that uses a Mozilla API.
[1] https://addons.mozilla.org/en-US/firefox/addon/tridactyl-vim...
It's great, but I am currently missing 2 features. First, in Vimperator you could tab complete URLs with the open command and then edit the URL. Second, you could build lots useful commands with Vimperator. I had one for flipping the proxy to a SOCKS one, and another command to do site-specific searches with tab completion. That is, type s, write and/or tab complete a URL and type the search. I would then submit a query to Google with the appropriate site:url operator.
Are any of these possible in Tridactyl right now? I haven't been able to reproduce any.
It's also annoying that lots of special Firefox pages, like unable to connect, steal the focus from Tridactyl and you need to use actual shortcuts from Firefox to find your way out. It kind of breaks the flow, but I understand this is a limitation imposed by Firefox with their new plugin architecture.
Custom commands are possible with `alias`, `js -p`, and `composite`. All are documented with `help [command]`, but there's probably room for improvement.
We haven't bothered to integrate proxy controls but I think it's possible. No-one has asked.
I love Firefox because all its old extensions,can't living without those great things.
I want ":pocket my-tag" to trigger a bookmarklet with current url and the tag, but I think the piping only ever passes 1 parameter. I guess JS_VAR could be an array(?), but I wouldn't know how to fill it.
I guess I could just use one optional tag and get the url myself in js (window.location.href).
This worked in pentadactyl (also this is a functioning, non documented bookmarklet for pocket :) ):
function(){window.open('https://getpocket.com/edit?url='+escape(window.location.href)+'&tags=<args>', '_self');}E.g, `:alias only_first js -p window.alert(JS_ARG.split('|')[0])` `:only_first this bit | not this`.
NB: untested, posted from 'phone.
I personally like that Tridactyl adds fast vi emulation without making changes to the firefox interface. The only problem is that vi keybindings don't work on some pages, which is why tridactyl includes its own new tab page.
Competitors that run on Firefox include:
- Vimium-FF
- Surfingkeys
- Vim-Vixen
- Saka Key
- Vvvimpulation
Further afield, there's:
- Vrome
- cVim
- Qutebrowser
Qutebrowser is the only thing that rivals us for capability, but I like Gecko's font rendering too much, and like using other WebExtensions.
All of the rest probably beat us in terms of polish.
Edit: quite a few of those I mentioned are unmaintained, if you care about that.
Does anyone know if you can do something similar in vimium on Chrome? That sounds absolutely awesome.
(Edited to fix link)