Skip to content

Feature wishlist for WebExtensions port #729

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
bovine3dom opened this issue Mar 1, 2017 · 77 comments
Open

Feature wishlist for WebExtensions port #729

bovine3dom opened this issue Mar 1, 2017 · 77 comments

Comments

@bovine3dom
Copy link

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

  • user remappable keys to arbitrary commands (e.g. bind s ogoogle )
  • moving around page
  • link hinting mode
  • insert/passthrough mode
  • find in page mode
  • history navigation
  • tab switching / navigation (:buffer style)
  • opening/closing URLs / tabs / windows
  • consistent UX: e.g, works on about:newtab, about:home, hopefully others.

Medium priority

  • bookmarks
  • hide Firefox GUI
  • window switching

Low priority

  • download UI (can't use about:downloads unless Firefox devs change their minds).
  • :js
  • VIMPERATOR_INIT

Please disagree with me below 😄.

@whirm
Copy link

whirm commented Mar 1, 2017

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
Copy link
Contributor

cmcaine commented Mar 1, 2017 via email

@whirm
Copy link

whirm commented Mar 1, 2017

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

@cmcaine
Copy link
Contributor

cmcaine commented Mar 1, 2017 via email

@MoSal
Copy link

MoSal commented Mar 1, 2017

  • Extended hints.
  • :set gui
  • :tab* commands.
  • :style* commands.
  • :bmark (with -keyword and -title).
  • :bdelete (with arg).
  • :restart

@gkatsev
Copy link
Member

gkatsev commented Mar 1, 2017

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
Copy link
Author

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
Copy link
Member

gkatsev commented Mar 1, 2017

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
Copy link

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
Copy link
Contributor

cmcaine commented Mar 1, 2017

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
Copy link

Some more

  • o and O to open url/search (modifying current in upper case)
  • t and T to open a new tab( modifying current in upper case)
  • d to close a tab
  • p and P to open URL in clipboard in tab (current or newr
  • u to bring back a closed tab
  • CTRL+D CTRL+U CTRL+E CTRL+Y
  • vimlike jumps (G, gg, '' ...)
  • quick marks
  • maps keys to javascript code (low priority, but I use it a lot also)
  • find (/) with hlsearch support, n and N to navigate results
  • CTRL H and CTRL L to navigate history

well, some have already been said

@KamphuisAlex
Copy link

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
Copy link
Member

gkatsev commented Mar 1, 2017

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

@MoSal
Copy link

MoSal commented Mar 1, 2017

Are we supposed to list everything?

More features:

  • :set complete
  • :set encoding
  • :zoom (with value)

@nachoparker
Copy link

nachoparker commented Mar 1, 2017

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.

  • Browsing: Basic mappings and commands needed for a browsing session (how to open a web page or go back in history).
  • Buffer: Operations on the current document like scrolling or copying text.
  • Command-line mode: Command-line editing.
  • Insert mode: Insert-mode editing.
  • Options: A description of all options.
  • Text search commands: Searching for text in the current buffer.
  • Tabs: Managing your tabbed browsing session.
  • Hints: Selecting hyperlinks and other page elements.
  • Key mappings, abbreviations, and user-defined commands:
  • Defining new key mappings, abbreviations and user commands.
  • Expression evaluation: Executing JavaScript.
  • Marks: Using bookmarks, QuickMarks, history and local marks.
  • Repeating commands: Using macros to repeat recurring workflows.
  • Automatic commands:
  • Automatically executing code on certain events.
  • Printing: Printing pages.
  • Vimperator's GUI: Accessing Firefox menus, dialogs and the sidebar.

@samrocketman
Copy link

samrocketman commented Mar 1, 2017

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:

  • Normal mode:
    • follow links - f, F
    • tabopen - t, T
    • open - o, O,
    • (undo) close tab - d, u
    • page marking and jumping - m, '
    • jump top/bottom - g, G
    • copy - y
  • Command mode:
    • tab buffers - :b, :ls
    • yank <a> names - ;#
    • copy links instead of following them - ;y

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
Copy link

oh yeah, forgot two

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

@rr-
Copy link
Contributor

rr- commented Mar 2, 2017

What I use, non-exhaustive list:

  • command mode and normal mode like someone mentioned earlier
  • f F
  • ;i and similar
  • gg, G, 50j, etc.
  • [[ and ]], very underrated
  • tabs (gt, d, P, :xall)
  • system clipboard (y, P)
  • history (H, L)
  • bookmarks (A)
  • bookmarks II - autocomplete in tab open (surprisingly, I don't use history in autocomplete)
  • zooming (4zi, 4zI)
  • keyboard shortcuts remapping (duh)
  • GUI (hide everything but tabs and command line) (we'll probably have to pester Mozilla to include this natively)
  • external form / textarea editing with gvim (probably process spawning will be considered too insecure to include in web extensions)
  • :js - open with mpv, including custom hint mode (same note as above - I'd really like this to work in some form)
  • integration with <input type=file> (see my pull requests, btw) to avoid the hellish GTK file dialog
  • :set hintchars=123456
  • :set browser.* like this
    "fit image to window
    noremap zf :set! browser.enable_automatic_image_resizing=true<CR><Esc>:reload<CR>
    
    "show image at original size
    noremap zo :set! browser.enable_automatic_image_resizing=false<CR><Esc>:reload<CR>
    

@cmcaine
Copy link
Contributor

cmcaine commented Mar 2, 2017

Process spawning is fine: we just do the same procedure as #729 (comment)

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
Copy link
Contributor

cmcaine commented Mar 2, 2017

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

@rr-
Copy link
Contributor

rr- commented Mar 2, 2017

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

@cmcaine
Copy link
Contributor

cmcaine commented Mar 2, 2017

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
Copy link

mavaa commented Mar 3, 2017

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
Copy link
Author

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 get a much more representative sample of users compared to the hyper-engaged people we have here on GitHub
  • We'd have some ammunition when begging for extensions to the WebExtensions API: e.g, look, we have 500 people who say that they want to be able to hide the GUI.

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-
Copy link
Contributor

rr- commented Mar 3, 2017

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

@SammysHP
Copy link
Member

SammysHP commented Mar 4, 2017

  • Commandline/statusbar
  • o, O, t, T, w, W – they must open something like the completion in Vimperator.
  • f, F and ;y to follow and copy links
  • / with the current behavior, the normal findbar doesn't work for me
  • y and p to copy and paste URL
  • Mappings that can override Firefox keybindings like Ctrl+Q
  • b to show and switch buffers
  • :set gui=none – just me, the content and a statusbar
  • Some kind of NoScript integration. Showing the popup would be enough.
  • Keyboard navigation of course (h, j, k, l, gg, G)
  • Open an external editor (Ctrl+I) would be nice
  • Commands to change preferences (:set! …)
  • Tab commands (d, u, :tabdetach, :tabmove)
  • Passthrough mode (Ins)

@protrolium
Copy link

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

@nachoparker
Copy link

nachoparker commented Mar 5, 2017

I did not know ]] !!!!!

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

@MoSal
Copy link

MoSal commented Mar 5, 2017

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

@Koushien
Copy link

Koushien commented Oct 5, 2017

Don't have much else to add that others haven't (I'd be happy to contribute to the exit poll if desired), but

became a dad 7 weeks ago

Congratulations @maxauthority!

@The-Compiler
Copy link

Some more alternatives other than what @bovine3dom mentioned:

  • luakit (recently gained a lot of traction again after making a WebKit2-fork the official "successor")
  • vimb (quite minimal, and not much activity recently...)
  • Saka Key (another Firefox WebExtension)

(disclaimer: I haven't used any of the alternatives for longer than a few minutes, with the exception of qutebrowser, which I'm the author of)

And congratulations @maxauthority on becoming a dad! Don't worry about not being responsive, family is more important than GitHub 😉

@timss
Copy link
Member

timss commented Oct 8, 2017

Congratulations @maxauthority ! :D


I've created an initial version of the survey which I'd like feedback on/help completing.

https://docs.google.com/forms/d/1WtS8eBXpLIyVXl2j937N-PP4nKX7ZjKL7P5cCEn2nc0/edit?usp=sharing

Feel free to add stuff or comments, especially where I've added TODOs. I'm not aware of any easy way to share edit permissions without anyone possibly tampering with it (now or later), but hopefully we'll be OK. Responses will be deleted before survey is published on AMO etc.

(disclaimer: I haven't used any of the alternatives for longer than a few minutes, with the exception of qutebrowser, which I'm the author of)

Similarly, I don't have experience with all of these addons or browsers. Please keep in mind when reviewing the survey :)

@bovine3dom
Copy link
Author

bovine3dom commented Oct 8, 2017

That's a good start, I think.

I don't quite see the point of section 3. Everyone viewing the survey will be using Firefox and Vimperator, so almost everyone will just answer that. I don't think it's a very interesting question.

I'd rather keep it to either just a free text area asking people what they liked in Vimperator, or that and a simple "Do you want a replacement for Vimperator?". Currently, there's a lot to scroll through.

Edit for clarity: I think the other sections should be kept.

@timss
Copy link
Member

timss commented Oct 8, 2017

Thanks for having a look. I like your introduction better, and the colors (if that were you) :)

I was sort of thinking it could serve as a survey not only for current users of Vimperator, but also for those who've moved to other projects. Although, maybe it's better for this survey to be focused on informing about alternatives and gathering interesting user info (primarily what users like about Vimperator).

[..] or that and a simple "Do you want a replacement for Vimperator?".

Maybe this fits into section 4?

Currently, there's a lot to scroll through.

Fair enough, was thinking the same! Although, sections will be paginated I believe.

@aplaice
Copy link

aplaice commented Oct 8, 2017

I've made some tiny stylistic changes.

Regarding the "favourite features" section, I think that in addition to the lists listed in this issue, we could look at the feature list from :helpall (copied verbatim below). This would have the advantage that our biases wouldn't result in some features being missed from the survey.

* Vim-like keybindings (h, j, k, l, gg, G, 0, $, ZZ, <C-f>, etc.)

* Ex commands (:quit, :open www.foo.com, …) with a proper command line

* Tab completion available for all commands, showing suggestions while you type

* Hint mode (start with f to follow a link)

* Extensions! Yes, you can extend Vimperator's functionality with scripts just like you can extend Firefox with extensions

* Explore JavaScript objects with :echo window and even context-sensitive tab completion

* Easily customizable GUI (easily hide all GUI elements with :set gui=none)

* Ability to :source JavaScript files, and to use a ~/.vimperatorrc file with syntax highlighting if you install vimperator.vim

* Easy quick searches (:open foo will search for "foo" in google, :open ebay terminator will search for "terminator" on ebay) with support for Firefox keyword bookmarks and search engines

* Count supported for many commands (3<C-o> will go back 3 pages)

* Beep on errors

* Marks support (ma to set mark a on a web page, 'a to go there)

* QuickMarks support (quickly go to previously marked web pages with go{a-zA-Z0-9})

* :map and :command support (and feedkeys() for script writers)

* :time support for profiling

* Move the text cursor and select text with Vim keys and a Visual mode

* External editor support

* Macros to replay key strokes

* AutoCommands to execute actions on certain events

* A comprehensive help system, explaining all commands, mappings and options

I think that the main points present in the feature list but not mentioned in the GitHub issue are :time and AutoCommands (I had not been aware of these, but it's possible that they have a dedicated following somewhere on the internet).

@bovine3dom
Copy link
Author

@aplaice there are so many features that I think just asking people to write their own in is more sensible. Just scroll up through this thread to see what diversity there is.

I think it is important to keep it as short and simple as possible. Potentially, it might be worth having three or four main options for alternatives, and then to provide a link to a related projects page with more detail.

@skrattaren
Copy link

skrattaren commented Oct 9, 2017

there are so many features that I think just asking people to write their own in is more sensible. Just scroll up through this thread to see what diversity there is

It's easy to forget some feature you use. Maybe it's worth adding a link to this thread? I learned a bunch of nice features myself from it.

@samrocketman
Copy link

samrocketman commented Oct 9, 2017

I've tweeted a sad message to @mozilla and @firefox that vimium is basically the only reason I'm using Firefox. I've now got to switch to Chrome because Vimium is the second most comfortable extension I use (not as comfortable or featured as vimperator). https://twitter.com/sag47/status/917434763001999360

Also, it seems a bit silly to ask people to put a wishlist in the poll (with results opaque to the users) when this GitHub issue exists. You should just reference it if you still want to do the exit poll.

@Croydon
Copy link

Croydon commented Oct 9, 2017

@samrocketman I still don't get this argument. You are saying you are switching to a browser (Chrome) with even less opportunities for add-ons (i.e. less powerful add-ons), because the new Firefox has less powerful add-ons APIs than the old Firefox, but still more than Chrome... and growing.

@bovine3dom
Copy link
Author

bovine3dom commented Oct 9, 2017

@samrocketman just use Firefox ESR. You're safe until June then.

Edit: as for the poll: it has a lot less friction than asking someone to make a GitHub account. Personally, I'm particularly interested in what the "silent majority" who are too busy / lazy to comment here would like. Also, reading thousands of comments on a GitHub issue would be much less nice than a spreadsheet.

@samrocketman
Copy link

samrocketman commented Oct 9, 2017

@Croydon I'm not really asking you to understand my argument. My statement is fairly simple and a preference for me. I don't really want to hijack this issue to convince you of my point of view. We can chat on twitter if you'd like to continue the conversation 😉 I'm @sag47.

In general, if volunteer development is not enough (or currently available Firefox APIs are not enough), then hopefully Mozilla/Firefox will listen and provide the necessary APIs or development support necessary for vimperator to continue.

@bovine3dom I'll search my package repository for Firefox ESR. That's a good idea 😄 if it allows me to use vimperator a little longer ❤️

@cmcaine
Copy link
Contributor

cmcaine commented Oct 9, 2017

I think the purpose of the survey should be:

  1. To inform users that vimperator is dying
  2. Inform them of alternatives
  3. Inform us about what features people like and how important they are to them

I think 2 should be mostly done via a section in the README on this project. That makes the content more accessible and discoverable, means we can use proper markup and shortens the exit poll.

I suggest that the form should be:

  1. Intro and goodbye
  2. Brief survey of vimperator features
  3. Link to a markdown page/wiki page in this repo talking about alternatives

@timss
Copy link
Member

timss commented Oct 11, 2017

It's easy to forget some feature you use. Maybe it's worth adding a link to this thread? I learned a bunch of nice features myself from it.

Also, it seems a bit silly to ask people to put a wishlist in the poll (with results opaque to the users) when this GitHub issue exists. You should just reference it if you still want to do the exit poll.

It was already referenced in the introduction, but I've added another link to this issue in the section in question (4).

I think 2 should be mostly done via a section in the README on this project. That makes the content more accessible and discoverable, means we can use proper markup and shortens the exit poll.

Good idea. Similar lists can be found in your tridactyl repo, or qutebrower's, both of which have been helpful. The one in Vimperator should be fairly short and unopinionated though, just as was intended in the survey.

I could try to look into it when I got some time on my hands, but until then feel free to create a PR. Take whatever is included in the alternatives section of the survey now deemed useful.


@bovine3dom I'll search my package repository for Firefox ESR. That's a good idea 😄 if it allows me to use vimperator a little longer ❤️

It's available in some distros (Debian, but only PPA on Ubuntu), but Firefox is fully self contained and is therefore also easy to install manually. Personally I have a few installations laying around in /opt/firefox with some symlinks for latest esr etc.

@cmcaine
Copy link
Contributor

cmcaine commented Oct 11, 2017

See PR #800.

@timss
Copy link
Member

timss commented Oct 12, 2017

Merged and linked to in the survey. The lack of formatting options in Google Forms is kind of annoying, so it might be better to just make it a seperate section for some boldness and stuff.

Since alternatives are gone, I opted for removing the section about which current browsers and if any, which Vim- or Vimperator-like addons/extensions people are currently using. By now it felt out of place.

As for the last free text section where we ask to list favorite features, someone filled in and replaced the question title with his/her answer ("Keyboard shortcuts, custom commands, GUI modifications, external commands execution"), lol. I tried remembering what it used to say, but feel free to modify however you see fit, @cmcaine, @bovine3dom or others. And thanks for the help so far! :)

@MoSal
Copy link

MoSal commented Oct 12, 2017

It's available in some distros (Debian, but only PPA on Ubuntu), but Firefox is fully self contained and is therefore also easy to install manually. Personally I have a few installations laying around in /opt/firefox with some symlinks for latest esr etc.

@timss @bovine3dom It should be noted that profiles are no longer backwards-compatible (since FF55, I think). So, you can't go back from FF56 to ESR with the same profile.

@timss
Copy link
Member

timss commented Oct 12, 2017

Well that's nice to know..

@laurentbardin
Copy link

@MoSal I've noticed no issues when I started using ESR this week, on macOS, Linux, and Windows. All my windows, tabs, addons, and preferences were correctly restored as far as I could tell. Any specific problem I should be expecting?

@cmcaine
Copy link
Contributor

cmcaine commented Oct 12, 2017 via email

@MoSal
Copy link

MoSal commented Oct 12, 2017

@laurentbardin

I wouldn't know what to expect.

Firefox does not support downgrades, even though this may have worked in past versions. Users who install Firefox 55+ and later downgrade to an earlier version may experience issues with Firefox.

Reading this in the release notes deterred me enough to not even try.

@laurentbardin
Copy link

@MoSal Thanks for the heads up, I missed that changelog item for some reason. So far, so good, fingers crossed.

@timss
Copy link
Member

timss commented Oct 24, 2017

FYI details regarding the "EOL" of Vimperator as well as the survey is now up on vimperator.org and AMO. Thanks @maxauthority and @gkatsev

I've locked the survey and it's now available on the following URLs:

@bovine3dom
Copy link
Author

That's great. Thanks to all involved.

Is there any intention to update Vimperator to have a pop up with the same information so that current users can be informed?

Just a new tab that shows up once with the survey would be enough I think.

@timss
Copy link
Member

timss commented Oct 25, 2017

And thanks to you and the others here who helped out with the survey, documentation of alternatives and of course a special thanks to those who are currently working with alternatives to Vimperator- or vim-like browser or addon alternatives! 👍 Personally I'll stick to ESR for a while longer, it's going to be hard to change even though the work looks promising.

There are as far as I know no plans for something like that, no, but it could probably be done using the same piece of code responsible for opening :help the first time:

// first time intro message

I'm looking into creating something.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests