-
Notifications
You must be signed in to change notification settings - Fork 2.5k
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
feature request: Safari support on macOS Big Sur with new Web Extension API #3610
Comments
It requires an Apple Developer account, which means 99 US dollars every year... |
Is there anyway to donate to the Vimium effort to help cover the cost of something like this? The Safari Web Extensions API was probably the WWDC announcement that excited me most, particularly because of the potential of seeing Vimium work. |
We have couple of options here:
My only concern is that Safari's WebExtension API support isn't good enough for vimium |
I'm also interested in this. Currently I'm working a bit on Vimari, one of the Safari alternatives out there on my own fork. As I'm running the macOS Big Sur beta I was able to successfully run the Safari Web Extension converter on the Vimium project with the following result:
Initially the extension could not be run as there was an error in the manifest
I'm not familiar with the codebase for Vimium but I figured that removing a css file from the manifest wasn't going to break the application, if it even worked at all, so I removed this section of the manifest. After this I was able to build and activate the extension in Safari 14. I did encounter an issue where upon activation Safari crashes due to it not being able to convert something to grayscale (presumably the logo, as all extension logos are grayscale). The icon of Vimium also doesn't show up in Safari after a restart. However the extension seems to be activated and in this next image you can see all the files loaded by the extension into the page (as would happen for Vimari) after giving the tool permissions to access content on the website. However sadly none of the functionality of Vimium seems to be working, I'm not seeing any errors in the console (Xcode nor Safari) so it could be that some initial call is not made. If there is an interest in continuing this path to get a working version (perhaps not with all of the functionality) of Vimium in Safari I'd be willing to spend an afternoon with someone more familiar with the Vimium codebase to try and get it to work. |
Vimium should own a background page, so the error messages might be in the console of the bg page, instead of the options page. |
Hi folks! I'm the (sometimes absent) maintainer of Vimari, a Safari port of Vimium. Vimari was forked from the Vimium codebase many years ago and has mostly lagged behind new features in Vimium. I'm very excited by the new Safari Web Extension support, in theory it would let us unify the Vimari codebase with the Vimium one (if desired). I see a few opportunities for collaboration here, depending on what the maintainers of Vimium would like:
|
@danielcompton I'm curious whether the 1st idea is possible or not - is developers allowed to load a dev version of Vimium to Safari without an Apple account? |
@danielcompton great to have you! I am very interested in Safari support. Of the options you presented, the second is the goal. I manage releases to the Chrome and Firefox store and can do so to the App store (I have an active developer account). Where do we begin? |
Safari 14 has publicly shipped. Anyone have open issues they need help with to further this effort? |
Hi. Wondering if there is any progress on this front. I use Vimium on Chrome and would love to have it in Safari as well. |
Would love to see this, Vimium is the one of the very few reasons I still use Chrome. Would love to switch to Safari and have and have my battery life back. |
Hi. I'm wondering if there's any progress on this. I've been waiting to use vimium on Safari. |
I am using Vimari just fine in Safari on macOS Big Sur. |
@philc @danielcompton is there any progress/roadmap? can we help in some way? |
I'm also waiting for the vimium for Safari. For switching open tabs, maybe this Alfred workflow can help: https://github.com/mandrigin/AlfredSwitchWindows |
@philc can't wait to use vimiim on safari, is there any progress? we would like provide some support if needed ;) |
For those missing the full Vimium in Safari, check out Orion a Webkit-based browser currently in beta. It lets us use Firefox and Chrome extensions. |
Related to this, with the announcement of Web Extensions for iPadOS, it would be interesting to look into into support for iPadOS as well. |
Basic support for this is super easy to get up and running locally — all you have to do, from what I can tell, is check for/remove references to APIs that Safari doesn't support (such as chrome.webNavigation.{onHistoryStateUpdated,onReferenceFragmentUpdated}). Doing that and removing the section for file:// URLs, which I'm not sure Safari actively supports, got the extension up and running for me without issue. Doing some more debugging now to see what else works and doesn't work, but it's been pretty smooth sailing so far. |
Here's what's not working so far:
Everything else seems to be working. This would also probably need some cosmetic changes to be a good citizen in Safari (maybe the icon set from the Vimari repo could be used?), since the icons have the Chromium icon behind them. Haven't gotten around to testing this on iPadOS, but I'll give it a try later today. |
As a heads up, Vimium (and Vimium C) extensions now work natively in Orion Browser. |
@nnothstine, I was wondering if you'd be willing to share a more in-depth guide on how we could port the extension from Chrome to Safari. I was able to get my browser to recognize the extension using Xcode to port it, yet it doesn't work because of an error stating that the extension can't run for 'security reasons'. In what directories exactly do I have to remove some paths or references to the old chrome language in order for it to work? Thanks in advance! |
What steps did you follow? For me i did only 2 changes:
After that it was working nearly perfectly on my ipadOS, except the issues @nnothstine mentioned. |
If you are ok with shortcuts like |
For those who might be interested, I've recently made public an alternative project for Safari - https://github.com/dzirtusss/vifari It is not a browser extension like Vimium or Vimari, but uses macos accessability api. From user perspective it feels almost the same like Vimari (but not as feature reach as Vimium surely). I mean, I was looking for ANY means to make vi flow working in Safari, but Vimium is not there (and no any idea when it will be if ever) and Vimari is unmaintained log ago. Architecturally, it however became more interesting, as it is pure lua single file and it is much easier to do something with it w/o any need for Swift/XCode/Apple/etc. and whatever restrictions will be enforced for plugins in future. Maybe will be interesting for Vimium core team as well as alternative approach. |
with Safari Web Extensions API we should be able to support Safari using the same codebase.
This would be very great since current alternatives on Safari doesn't have feature parity with Vimium.
Links:
https://developer.apple.com/documentation/safariservices/safari_web_extensions
https://developer.apple.com/videos/play/wwdc2020/10665/
https://hacks.mozilla.org/2020/06/welcoming-safari-to-the-webextensions-community/
The text was updated successfully, but these errors were encountered: