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/
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:
$ xcrun safari-web-extension-converter ./vimium --project-location ./vimium-xcode
Xcode Project Location: ./vimium-xcode
App Name: Vimium
App Bundle Identifier: com.yourCompany.Vimium
Language: Swift
Is this correct? [yes]: yes
Warning: The following keys in your manifest.json are not supported by your current version of Safari. If these are critical to your extension, you should review your code to see if you need to make changes to support Safari:
history
clipboardRead
match_about_blank
bookmarks
sessions
notifications
Initially the extension could not be run as there was an error in the manifest content_scripts
on line 78
where the matches
key is defined for content_scripts/file_urls.css
.
"matches": ["file:///", "file:///*/"],
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.
You were right, I found an error in the background 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?
Love that vimium wants to embrace the merging of vimari 鉂わ笍
I really would like to switch to safari for the sheer speed on there, but without the T
(Search through your open tabs) command I'm lost xD
@philc @danielcompton is there any progress/roadmap? can we help in some way?
Love that vimium wants to embrace the merging of vimari 鉂わ笍
I really would like to switch to safari for the sheer speed on there, but without theT
(Search through your open tabs) command I'm lost xD
I'm also waiting for the vimium for Safari. For switching open tabs, maybe this Alfred workflow can help: https://github.com/mandrigin/AlfredSwitchWindows
Most helpful comment
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: