vimperator / vimperator-labs

Vimperator
http://vimperator.org
Other
1.19k stars 196 forks source link

Feature wishlist for WebExtensions port #729

Open bovine3dom opened 7 years ago

bovine3dom commented 7 years ago

See #705 first. I'd like to use this issue specifically to understand what features people would miss from Vimperator, so that we can try to ensure that any WebExtensions port/successor contains them. What follows is my personal opinion:

High priority

Medium priority

Low priority

Please disagree with me below πŸ˜„.

whirm commented 7 years ago

The external editor functionality (CTL+I) Is super useful to me, I use it very often to edit all sorts of stuff in Emacs.

cmcaine commented 7 years ago

Emacs!? Ban this sick filth.

On 1 March 2017 12:39:17 GMT+00:00, Elric Milon notifications@github.com wrote:

The external editor functionality (CTL+I) Is super useful to me, I use it very often to edit all sorts of stuff in Emacs.

-- You are receiving this because you are subscribed to this thread. Reply to this email directly or view it on GitHub: https://github.com/vimperator/vimperator-labs/issues/729#issuecomment-283329366

whirm commented 7 years ago

I use it with Spacemacs/evil if that offends you any less ;)

cmcaine commented 7 years ago

Slightly ;P

We can do this with the runtime.nativeConnect API, but users who want to use it will have to install a couple of files for us: a simple shell script and a .json file telling Firefox that we're allowed to talk to that shell script.

On windows we need a registry key, a json file and a batch file, but same principle.

If we get a Filesystem API that lets us write to disk, we might be able to install it automatically on *nix.

On Wed, Mar 01, 2017 at 04:46:24AM -0800, Elric Milon wrote:

I use it with Spacemacs/evil if that offends you any less ;)

-- You are receiving this because you are subscribed to this thread. Reply to this email directly or view it on GitHub: https://github.com/vimperator/vimperator-labs/issues/729#issuecomment-283330784

MoSal commented 7 years ago
gkatsev commented 7 years ago

Looks like a decent list but needs to be reconciled with what is possible and not possible with web-ext. For example, hiding the firefox GUI is probably not going to be possible even with the new theming support.

Also, can you elaborate some more about "moving around the page"?

bovine3dom commented 7 years ago

I mean hjkl, ^D, ^U etc.

I think it makes sense to work out which features we desire most, and then talk about feasibility after, so we know how hard to fight, and where we can make compromises more easily.

The theming, for example, is something we can lobby for, and if we must, we could make our own WebExtensions API to hide GUI which can be used in the developer edition only.

gkatsev commented 7 years ago

Oh, of course, those kind of movement.

We probably should prioritize things by web-ext support as well. So, high things should be core vimperator stuff and those that web-ext supports (well, key bindings are an exception to something we need to have regardless of web-ext support).

nachoparker commented 7 years ago

thanks for the list ctrl+I is awesome. It is good to see that there is a way I also use ctrl+t quite a bit. really handy

The theming, for example, is something we can lobby for, and if we must, we could make our own WebExtensions API to hide GUI which can be used in the developer edition only.

Agree, when the rest is mature, we shouldn't be too scared of changing FF itself. Just small changes close always to upstream.

We probably should prioritize things by web-ext support as well.

Definitely.. I would focus on what we can do easily first, then start the extreme tweaks ;)

cmcaine commented 7 years ago

I think this bug will be most useful to implementers as a list of desired features, without concern for whether they can be implemented or not. Just tell us what you would miss from Vimperator if it was gone.

Let implementers worry about filtering by feasibility - feasibility will be a moving target, anyway.

nachoparker commented 7 years ago

Some more

well, some have already been said

KamphuisAlex commented 7 years ago

Those are the important ones I would say.

I would however like to add support for custom search engines, e.g. use yt for searching on youtube just like is possible in the normal address-bar and in vimperator now.

gkatsev commented 7 years ago

@cmcaine makes sense. We can then filter things later.

MoSal commented 7 years ago

Are we supposed to list everything?

More features:

nachoparker commented 7 years ago

We are just stating what is more useful for now. Anyway, for completeness I will post here the main sections in Vimperator help. This does not mean that we are doing all this, but just to help people remember what they use the most.

samrocketman commented 7 years ago

I use the following .vimperatorrc settings on a vanilla install:

; move left tabs with SHIFT+J
nmap J gT
; move right tabs with SHIFT+k
nmap K gt
; use a home row mapping for following links
set hintchars=hjklasdfgyuiopqwertnmzxcvb

Common operations for me include:

IMPORTANT - The primary reason why I find vimperator useful over other clones (like vimium for Chrome) is the command mode bar. Additionally, navigating tabs doesn't annoyingly force-focus the URL bar like it does in Chrome. I hope going forward vimperator doesn't adopt this poor behavior. I like using the ESC key.

If I think of more, I'll update my comment.

nachoparker commented 7 years ago

oh yeah, forgot two

y - copy the URL of current tab CTRL+^ go to last tab. This one is awesome! ( or CTRL+6)

rr- commented 7 years ago

What I use, non-exhaustive list:

cmcaine commented 7 years ago

Process spawning is fine: we just do the same procedure as https://github.com/vimperator/vimperator-labs/issues/729#issuecomment-283336371

We'd probably just define a "native application" that's a python script that just runs whatever we ask it to, and use that script for all external invocations.

cmcaine commented 7 years ago

set browser. doesn't do anything for me... Is it intended to make changes to the settings on about:config?

rr- commented 7 years ago

Yes, I meant the family of browser. options followed by anything browser-specific from about:config

cmcaine commented 7 years ago

Ah, you have to use set!, with the !. Cool: didn't know about that. Not sure we'll be able to reimplement, but thanks for the use case.

mavaa commented 7 years ago

Don't think there's anything here I'm missing that hasn't already been mentioned, but the f and F keys always worked surprisingly well for me when switching from Vimium+Chrome to Vimperator+Firefox, just because it seems to highlight many links/buttons that Vimium couldn't Ugly look at the MS Outlook Web App

bovine3dom commented 7 years ago

Slightly tangential to this issue: what do people think about redirecting Vimperator users (or maybe a subset of users) to a survey of feature importance in some future update?

One of my pet hates is when an extension opens tabs with changelogs and a donation button, but I think as a one-off, this might be acceptable due to the following benefits:

We'd obviously need to put a lot of thought into the survey to make sure it was useful and worth the imposition on users.

rr- commented 7 years ago

At very least, this issue is a good place to gather the feature set to put in such a survey.

SammysHP commented 7 years ago
protrolium commented 7 years ago

everything @SammysHP mentions is essential to me, as well. I would add: [[ and ]] for pagination and go* + gn* for accessing qmarks.

nachoparker commented 7 years ago

I did not know ]] !!!!!

genius!!!!!!!!!!!

MoSal commented 7 years ago

There is also C-a and C-x for incrementing/decrementing the last number in URL.

nachoparker commented 7 years ago

There is also C-a and C-x for incrementing/decrementing the last number in URL.

goddamn awesome!

I use C-6 or C-^ a lot to switch to the last used tab

aplaice commented 7 years ago

In addition to what has been already listed here β€” :set gui=none, buffers!, quickmarks and local marks, ]], obviously f/F, etc. β€” I really, really love the vim-like self-documentation :help + key or :help + command/topic.

(I'd say that I'd have been even more ecstatic about an emacs-like C-h k (which has the two advantages that one can just press the keys exactly as one would use them (i.e. just press C-h k C-a on your keyboard, rather than type in :help <C-a>) and that it's updated to user-modifications, in case you forget what you added to your config a year ago), but I'd probably be lynched, it'd be a new feature request, and keeping the existing :help in the webextension vimperator would still be amazing.)

cmcaine commented 7 years ago

The Emacs-style help idea is interesting, and probably wouldn't be hard. Thanks for mentioning it.

On 12 March 2017 20:12:50 GMT+00:00, aplaice notifications@github.com wrote:

In addition to what has been already listed here β€” :set gui=none, buffers!, quickmarks and local marks, ]], obviously f/F, etc. β€” I really, really love the vim-like self-documentation :help + key or :help + command/topic.

(I'd say that I'd have been even more ecstatic about an emacs-like C-h k (which has the two advantages that one can just press the keys exactly as one would use them (i.e. just press C-h k C-a on your keyboard, rather than type in :help <C-a>) and that it's updated to user-modifications, in case you forget what you added to your config a year ago), but I'd probably be lynched, it'd be a new feature request, and keeping the existing :help in the webextension vimperator would still be amazing.)

-- You are receiving this because you were mentioned. Reply to this email directly or view it on GitHub: https://github.com/vimperator/vimperator-labs/issues/729#issuecomment-285972489

samrocketman commented 7 years ago

Half page navigation ctrl+u and ctrl+d are additional shortcuts I enjoy using.

tecfu commented 7 years ago

I use caret mode / visual mode extensively for search and copy.

patrick-ausderau commented 7 years ago

In addition to what is already listed I frequently use gu

nachoparker commented 7 years ago

oh gu.... don't use it much but reminded me that I do use gr a LOT

patrick-ausderau commented 7 years ago

And I forgot ctrl+w in insert mode or when editing an URL (e.g. from a wikipedia page to another: shift+O, then ctrl+w, a letter or two and tab + enter)

timss commented 7 years ago

Nice list, but I'd personally bump js up to medium because it's so important for extensibility with other addons (TST, ..), user scripts and even running scripts/programs in your OS from FF1. Functions and commands using what is really eval() with sugar are something I use all the time.

I'd also like to echo the usefulness of set!. Not only can you configure most of FF through these preferences, but also many addons. Reinstalling or deploying my config to new profiles/installations isn't that tiresome much because of this.

1 Altough I realise this doesn't seem like it's going to be possible in the same way as we have now in the era of WE anytime soon.

Travolter commented 7 years ago

Biggest, almost inevitable, loss for me will/would be the gui=None. I genuinely dislike having an url bar eat up vertical space.

cmcaine commented 7 years ago

@timss, interop with addons like TST will now rely on the active support of those addon developers (see below) and may be somewhat complicated as the addons will execute in different processes. js eval is not otherwise problematic.

@rr, @SammysHP, @timss, on set! word of mozilla is thus:

18:07 <@aswan> colinc: there won't be general access
18:07 <@aswan> we have apis like privacy, proxy, etc that give controlled access to individual prefs
18:07 <@aswan> and we can add more like those

It's also worth noting that webextensions will not be able to add keys to about:config, so no configurability of addons will be possible through that interface in the future. Interop with other addons will have to be done by either the addon community agreeing on some common API/configuration system or by pull requests on each project.

If anyone has the time to look into this, it could be an interesting project for Vimperatoralikes and the wider webextension community.

fakedrake commented 7 years ago

This thread is a goldmine of vimperator features I had no idea about. Quite ironic that they are the features in the greatest danger of being discontinued.

cmcaine commented 7 years ago

@Travolter, It will be possible to hide the tab bar, but Mozilla devs are strongly opposed to allowing the navigation bar to be hidden. See: https://bugzilla.mozilla.org/show_bug.cgi?id=1332447

I don't understand their security concerns, but they seem fairly set about it. At some point, I'd like to get some direct contact with someone from the security team to try and understand their position better.

If any of you do decide to post on bugzilla, please remember that the only productive way to engage is politely and constructively - webextensions, multiprocessing and the other breaking changes are, IMHO, good things for firefox. Too many people are already ranting unjustifiably at the Firefox team about this.

Travolter commented 7 years ago

@cmcaine I had read that bug, and I am aware of the problem. It's why I mentioned it, to highlight how important that feature is to some of us. I sincerely hope a solution can be found. As far as I am aware their security concerns have to do with the green SSL icon and probably url redirecting. Which both only make sense for the non tech savvy users, not for people who go around messing with their browser UI.

dasJ commented 7 years ago

I could live with a subset of the functionality proposed here. The question is: When do we start? Who is 'we'? Will there be a new repository in the vimperator/ namespace or does somebody else take it? By quickly reading over this thread, I found people saying there willing to contribute and I think the earlier the project gets started, the better. Maybe WebExtensions doesn't support all features we need, but we should starting to implement the functionality it already has.

So does anyone have more information on the near future? @gkatsev

cmcaine commented 7 years ago

See issue #705.

@bovine3dom and I are working on a replacement and some chrome addons are beimg ported.

For now, I am working with Mozilla to develop the new APIs we need for approximate feature parity with vimperator.

If you would like to help with our project, please mail me or open an issue on my tridactyl repo.

On 13 April 2017 10:15:42 BST, "Janne Heß" notifications@github.com wrote:

I could live with a subset of the functionality proposed here. The question is: When do we start? Who is 'we'? Will there be a new repository in the vimperator/ namespace or does somebody else take it? By quickly reading over this thread, I found people saying there willing to contribute and I think the earlier the project gets started, the better. Maybe WebExtensions doesn't support all features we need, but we should starting to implement the functionality it already has.

So does anyone have more information on the near future? @gkatsev

-- You are receiving this because you were mentioned. Reply to this email directly or view it on GitHub: https://github.com/vimperator/vimperator-labs/issues/729#issuecomment-293836583

fakedrake commented 7 years ago

After switching to chrome for a short while because of my job, I had to use cvim. A huge problem with cvim (which is much closer to vimperator than vimium) is that it is based on injecting some code in each page. The problem with that is that a) not all pages are injectable (eg pdfs and chrome links) and b) no control until the page has sufficiently loaded.

How well is the webextension port doing in this respect?

bovine3dom commented 7 years ago

At the moment, it has the same problem. We would need a new WebExtension API to deal with it; we are currently waiting on Mozilla for feedback on our proposal. That's the Keyboard API that has been spoken about in this thread.

bovine3dom commented 7 years ago

Slightly tangential to this issue: what do people think about redirecting Vimperator users (or maybe a subset of users) to a survey of feature importance in some future update?

FF57 is going to be released on November 14th. I think it might be worth having a kind of "exit poll" - one last update to the AMO within the next weeks, directing people to a survey containing:

Hopefully such a survey would be useful to any successor projects, and also to the users themselves.

timss commented 7 years ago

Good idea, @bovine3dom πŸ‘

How about a Google Forms survey with public results? I'd be willing to make one, but it would be nice with some feedback/collaborators before it's published.

cc @maxauthority @gkatsev (who have access to AMO).

cmcaine commented 7 years ago

I'm happy to give feedback on it.

On 3 October 2017 10:01:34 BST, timss notifications@github.com wrote:

Good idea, @bovine3dom πŸ‘

How about a Google Forms survey with public results? I'd be willing to make one, but it would be nice with some feedback/collaborators before it's published.

cc @maxauthority @gkatsev (who have access to AMO).

-- You are receiving this because you were mentioned. Reply to this email directly or view it on GitHub: https://github.com/vimperator/vimperator-labs/issues/729#issuecomment-333782313