Browser-laptop: Extension: Vimium

Created on 16 Jun 2017  ·  22Comments  ·  Source: brave/browser-laptop

Extension: Vimium

image

For development purposes, the background page for this extension can be accessed by navigating to chrome-extension://iohnebgmbihompbdpjbgkcgahnkdjbal/_generated_background_page.html

Needed APIs:

chrome.bookmarks

  • [ ] #6198 chrome.bookmarks.getTree (docs)

chrome.browserAction

  • [ ] #6197 chrome.browserAction.setIcon (docs)

chrome.extension

  • [x] #9549 chrome.extension.getBackgroundPage
  • [x] #8688 chrome.extension.getURL
  • [x] #9550 chrome.extension.getViews
  • [x] #9551 chrome.extension.inIncognitoContext

chrome.history

  • [ ] #10397 chrome.history.onVisitRemoved
  • [ ] #10398 chrome.history.onVisited
  • [ ] #9552 chrome.history.search

chrome.notifications

  • [ ] #8817 chrome.notifications.onClicked

chrome.permissions

  • [ ] #10404 chrome.permissions.onAdded

chrome.runtime

  • [x] #8682 chrome.runtime.connect
  • [x] #8683 chrome.runtime.getManifest
  • [x] #9555 chrome.runtime.getURL
  • [x] #8799 chrome.runtime.lastError
  • [x] #9655 chrome.runtime.onConnect
  • [x] #10399 chrome.runtime.onInstalled
  • [x] #8791 chrome.runtime.onMessage
  • [x] #8802 chrome.runtime.sendMessage

chrome.sessions

  • [ ] #10400 chrome.sessions.restore

chrome.storage

  • [ ] #8803 chrome.storage.local.get
  • [ ] #8805 chrome.storage.local.remove
  • [ ] #8804 chrome.storage.local.set
  • [ ] #10401 chrome.storage.onChanged
  • [ ] #10402 chrome.storage.sync.get
  • [ ] #10402 chrome.storage.sync.set

chrome.tabs

  • [x] #8680 chrome.tabs.create
  • [ ] #7458 chrome.tabs.duplicate
  • [x] #8808 chrome.tabs.executeScript
  • [x] #9830 chrome.tabs.get
  • [ ] #7456 chrome.tabs.insertCSS
  • [ ] #10403 chrome.tabs.move
  • [ ] #8819 chrome.tabs.onActivated
  • [ ] #8809 chrome.tabs.onRemoved
  • [ ] #6194 chrome.tabs.onReplaced
  • [x] #8811 chrome.tabs.query
  • [x] #4687 chrome.tabs.remove
  • [x] #8812 chrome.tabs.sendMessage
  • [ ] #6790 chrome.tabs.update (docs)

chrome.webNavigation

  • [ ] #6196 chrome.webNavigation.onHistoryStateUpdated (docs)
  • [ ] #9544 chrome.webNavigation.onReferenceFragmentUpdated (docs)

chrome.windows

  • [x] #9553 chrome.windows.WINDOW_ID_NONE
  • [ ] #6789 chrome.windows.create
  • [x] #8677 chrome.windows.getAll
  • [x] #9554 chrome.windows.getCurrent
  • [x] #4760 chrome.windows.onFocusChanged
  • [x] #8679 chrome.windows.update

Vimium Shortcuts:

Navigating history

  • H : Go back in history ✔️
  • L : Go forward in history ✔️

Manipulating tabs

  • K, gt : Go one tab right ✔️
  • J, gT : Go one tab left ✔️
  • t : Create new tab ✔️ (Opens to chrome://newtab/)
  • x : Close current tab ❌
  • X : Restore closed tab ❌ (session.restore: Access to extension API denied.)

Navigating the page

  • ? : Show the help dialog ✔️
  • j : Scroll down ✔️
  • k : Scroll up ✔️
  • h : Scroll left ✔️
  • l : Scroll right ✔️
  • gg : Scroll to the top of the page ✔️
  • G : Scroll to the bottom of the page ✔️
  • u, <c-u> : Scroll a half page up ⚠️ (<c-u> conflicts with _View Source_)
  • d, <c-d> : Scroll a half page down ⚠️ (<c-d> conflicts with _Bookmark Page_)
  • <c-f> : Scroll a full page down ⚠️ (<c-f> conflicts with _Find on Page_)
  • <c-b> : Scroll a full page up ❌
  • f : Open a link in the current tab ✔️
  • F : Open a link in a new tab ✔️
  • o : Open URL, bookmark, or history entry ⚠️ (bookmarks.getTree)
  • O : Open URL, bookmark, or history entry in a new tab ⚠️ (bookmarks.getTree)
  • r : Reload the page ✔️
  • gs : View page source ✔️
  • / : Enterfind mode ✔️
  • n : Cycle forward to the next find match ✔️
  • N : Cycle backward to the previous find match ✔️
  • yy : Copy the current URL to the clipboard ✔️
  • gf : Cycle focus to the next frame ✔️
  • i : Enter insert mode ✔️
bug featurextensions fixed-with-brave-core wontfix

Most helpful comment

Only thing stopping me switching currently.

All 22 comments

What is the status of this extension in Brave? I would be happy to help get it working; it's my only must-have extension.

I've seemingly enabled it by uncommenting the relevant lines in app/extension.js, and it appears on my about:extensions page, as well as on my about:preferences#extensions. However the linked background page is not available, and there is no other indication that the extension is active. What else am I missing?

Echoing @agwblack. I like to use Brave but the lack of vimium is a deal breaker. Given the current status of the extension API, would it possible to implement partial support? I guess that most people use it primarily to "click" links, search and scroll.

@agwblack We'd love to see this supported. If you're interested in assisting, and available to do so, we'd welcome your participation. Feel free to join our #developers-desktop Discord channel. I'm happy to discuss the relevant code-base there.

@fredfortier That's a possibility. One of the big hold-outs was lack of chrome.windows.create, which I began implementing a couple of weeks ago. @kevinlawler is now carrying it across the finish-line. With this, we should be even more well-rounded than when the extension was first tested.

@jonathansampson that's great news! Here are my favorite features in order of importance just to give you an idea. Others may want to chime in:

  1. Open new page (o O)
  2. Search in page (/ n)
  3. Maps keys to links (f F)
  4. Scroll up and down (j l gg G)

If extensions can now open a tab, these features should be covered.

+1 to this extension being make or break for me with using Brave.

I agree with what @fredfortier for those features being priority. I'd add:
*half page up/down (u d)
*page up/down (space Shift+space)
*close tab / restore closed tab (x X)
*reload (r)
*next tab / previous tab (K J)

for the Find/Search mode (no. 2 above) I'd add the n for next or N for previous.

Thanks for working on this. I am using this trick to install vimium by @jonathansampson: test chrome extensions. However, vimium is disabled in brave after installation. Any pointers on how to make it work? Thanks.

I installed vimium with the same hack as @mjuarezm. The icon shows up fine (albeit disabled) as do all the options.

Developer tools (chrome-extension://bmnlcjabgnpnenekpadlanbbkooimhnj/_generated_background_page.html) show a stack of these errors on startup:
at chrome-extension://bmnlcjabgnpnenekpadlanbbkooimhnj/background_scripts/main.js:934:4 _generated_background_page.html:1 Unchecked runtime.lastError while running storage.remove: IO error: .../LOCK: Lock file already locked. (ChromeMethodOnly: 15::LockFile)
as well as a couple:
_generated_background_page.html:1 Error in response to storage.get: TypeError: Cannot read property 'findModeRawQueryListIncognito' of undefined

I was hoping to see some logging output from _chrome-extension://bmnlcjabgnpnenekpadlanbbkooimhnj/pages/logging.html_ but it might be erring out before it gets that far.

Just wanted to say I am stoked about this, and would be happy to help review/QA early versions of this extension if needed. :)

You folks are awesome.

Any update on this? I am happy to contribute if some work still needs to be done.

@liaosteven there are lots of issues linked here. Those are needed to make Vimium work properly. I'd pick one or more and implement it.

Would it be possible to release some kind of beta version with limited features?

Would love to see this must have plugin implemented in Brave!

Only thing stopping me switching currently.

I lost my mouse two years ago for my desktop and it was Vimium that enabled me doing everything on Chrome and saved me 50 bucks. Please at least release a beta version for us to try so that I can completely switch to Brave.

Any estimation when we will be able to test this?

I don't think we'll be able to finish this on our current Muon base... but we are in the midst of updating to use the Chromium based UI (aka Brave Core). This will give us full support for extensions (including Vimium!) 😄

More info here:
https://brave.com/development-plans-for-upcoming-release/

please please fix this i need this

Why has this been closed?

It works on the new browser. See above. I'm using it on this page now.

@Drunkenpanda2000 @rdewolff please check out our Developer channel release (it's live now!) 😄
https://brave.com/download-dev

Confirm vimium works for dev. So should most chrome "power users" be using dev and not the regular one?

When is vimium support coming to the stable release? (also was curious why dev release settings looks like chrome and the stable release a custom page.)

Also, assuming no BAT token compatibility on dev?

@jonchoi the dev version is now live on our Beta channel as well (and in time, it will entirely replace the current product). You can grab it here:
https://brave.com/download-beta

Unlike the Developer channel, the BAT functionality in the Beta should be using a production environment. However, Brave Payments is being overhauled entirely as Brave Rewards (the UI and experience is entirely different). Feedback is very much appreciated 😄 But it's still a work in progress. You may not be able to import your data yet and I don't believe it's at the point where you can pay your favorite sites yet

Was this page helpful?
0 / 5 - 0 ratings

Related issues

mykkymk picture mykkymk  ·  3Comments

antiroyalty picture antiroyalty  ·  3Comments

stevespringett picture stevespringett  ·  3Comments

jkup picture jkup  ·  3Comments

jonathansampson picture jonathansampson  ·  3Comments