sVim icon indicating copy to clipboard operation
sVim copied to clipboard

Release sVim as official extension

Open nikivdev opened this issue 7 years ago β€’ 43 comments

Sadly with new release of macOS Mojawe, non official Safari extensions will break.

I am planning to update my mac to Mojawe soon but I can't do it until I know that sVim is working in new Safari as I can't use the browser without this extension.

I know it'd dumb for developers having to pay 100 dollars just to release an extension in their store but perhaps if the community of users can donate to cover the costs of @flipxfx or someone else publishing the extension, it would be worth doing it.

What do you think?

nikivdev avatar Jun 25 '18 00:06 nikivdev

Oh and to add to this, it seems sVim alongside all other extensions will have to be rewritten with Cocoa instead of plain JavaScript. Hopefully that transition will not be too painful though.

nikivdev avatar Jun 25 '18 01:06 nikivdev

Anyone wants to give a hand at porting sVim to Mojawe and new Safari?

nikivdev avatar Jul 20 '18 19:07 nikivdev

I hit my tipping point a while ago with respect to Apple's treatment of software developers. Their changes to Safari plugins with Mojave is just more of the same, continuing past aggressive behavior like requiring us to pay $100 to release free plugins that benefit their ecosystem. Developing more software for their platforms is a mistake. But I do hope you find some folks who have less loathing toward Apple to help!

abrookins avatar Jul 20 '18 20:07 abrookins

I agree with you @abrookins. But even knowing all this, Safari is still the best browser on macOS right now.

And I really need sVim to work there. I am going to try replicate this extension myself and hopefully it should be possible.

nikivdev avatar Aug 03 '18 20:08 nikivdev

I'm not sure I'll ever be able to escape the Apple ecosystem. πŸ˜… Has anyone found an overview of the update we need to make? Am I correct that this needs to become an "App Extension"? https://developer.apple.com/documentation/safariservices/safari_app_extensions CC @nikitavoloboev

abrookins avatar Sep 01 '18 15:09 abrookins

Yes it's correct.

It has to be rewritten as a whole basically.

nikivdev avatar Sep 01 '18 15:09 nikivdev

I did a little experiment on this subject.

By exploring the official guide and the API, I found that we will lose some control to safari due to the lack of support from the API. For example, in the new API, I actually found nothing to control which tab to activate. It seems Apple made this new app extension more restricted.

The GUI for sVim setting and data storage may need to be redone in Swift.

The JS related functionalities can be migrated smoothly.

luchenyuxx avatar Sep 01 '18 15:09 luchenyuxx

Interesting. I’ll study the guide again over the weekend.

After a cursory reading, it seems that we can still inject JS and CSS, so I’m unclear how much would actually need to be rewritten.

On Sat, Sep 1, 2018 at 8:24 AM Chenyu Lu [email protected] wrote:

I did a little experiment on this subject.

By exploring the official guide and the API, I found that we will lose some control to safari due to the lack of support from the API. For example, in the new API, I actually found nothing to control which tab to activate. It seems Apple made this new app extension more restricted.

β€” You are receiving this because you were mentioned.

Reply to this email directly, view it on GitHub https://github.com/flipxfx/sVim/issues/94#issuecomment-417866765, or mute the thread https://github.com/notifications/unsubscribe-auth/AAF7nvT0TEslafBZ_0TODFn3QGEMl81Yks5uWqa_gaJpZM4U1Xfi .

abrookins avatar Sep 01 '18 16:09 abrookins

@abrookins In my opinion, not so much. I have already a migrated version running on default settings and without control to safari tabs.

luchenyuxx avatar Sep 01 '18 16:09 luchenyuxx

I have already a migrated version running on default settings and without control to safari tabs.

Can you make a fork or start a repo with it? I am planning to move to Mojawe when it gets released.

nikivdev avatar Sep 01 '18 16:09 nikivdev

@nikitavoloboev I will commit it to a new branch on my fork.

luchenyuxx avatar Sep 01 '18 16:09 luchenyuxx

If you push it up to a branch somewhere, I’ll test it with Mojave this weekend. Then maybe we can get an early Mojave beta out. I’ll probably renew my dev membership and we can use that to release (that is, if you wanted to contribute that code to sVim rather than fork the project). Also, awesome that you already jumped on the update @luchenyuxx!

On Sat, Sep 1, 2018 at 9:30 AM Chenyu Lu [email protected] wrote:

@nikitavoloboev https://github.com/nikitavoloboev I will commit it to a new branch on my fork.

β€” You are receiving this because you were mentioned.

Reply to this email directly, view it on GitHub https://github.com/flipxfx/sVim/issues/94#issuecomment-417870878, or mute the thread https://github.com/notifications/unsubscribe-auth/AAF7nicOEUi_bCdEHd8vxpftFOX1qentks5uWrYVgaJpZM4U1Xfi .

abrookins avatar Sep 01 '18 16:09 abrookins

I’ll start looking at how to do the plugin settings.

abrookins avatar Sep 01 '18 16:09 abrookins

Alright, I renewed, so now we have to release this thing. πŸ˜…

abrookins avatar Sep 01 '18 18:09 abrookins

@abrookins @nikitavoloboev The migrated Xcode project: link. Use Xcode to open it. Follow the official guide to launch and use it in Safari.

luchenyuxx avatar Sep 01 '18 18:09 luchenyuxx

Just to expand on this a bit, here are some of my thoughts:

  • I updated to Mojave and installed @luchenyuxx's branch. Great to see that hints and navigation work without too much rewriting.

  • We can adapt the JS portion of the app to send messages wherever it previously interacted directly with the JS Safari API. However, as @luchenyuxx noted already, the Swift/Obj-C Safari API exposed to the app code has less features than the JS API, so the app version of sVim will have less features, too.

  • Reading a bit closer on the Safari app extension timeline, it appears that Apple is deprecating support for side-loaded Safari extensions, but will still support versions of sVim released from the Safari Extensions Gallery, which sVim is currently. However, they will stop accepting gallery submissions at the end of 2018. So, for the immediate future and hopefully 2019, the plugin should continue to work in Mojave, if installed from the extensions gallery (and I've confirmed that it does in the Mojave beta).

Given all that, here's what I propose:

  • Before the end of the year, we make another release or two. That should get a couple of recent PRs merged and available in the build from the extensions gallery.

  • There will be a period of time, I suspect about 9 months (let's call it January 2019 - October 2019), while the extensions gallery is not accepting new submissions, and during which our last extensions gallery release should still be installable. During that time, we can work on releases of a new thing, "sVim2", in the app store.

  • Apple will eventually deprecate extensions gallery plugins completely, so our frozen version from 2018 will disappear. Whenever the happens, the new app version, sVim2, will already have been released and will become the only way to install sVim in Safari.

abrookins avatar Sep 02 '18 04:09 abrookins

Is it possible to install @luchenyuxx fork officially somehow? I am not updating to Safari 12.0 until sVim is available there.

nikivdev avatar Sep 19 '18 14:09 nikivdev

It's kinda buried in my wall of text, but the summary is that the current extension should work fine in Mojave. What's changing is that end of year, Apple will stop accepting updates to the extensions gallery. That is, we can't ship any updates to the extension. We'll then probably have the rest of 2019 to get the app version working, and I hope by then they have better Safari APIs available.

abrookins avatar Sep 19 '18 22:09 abrookins

But the extension is not on Safari Extension List. It's downloaded from releases currently.

How can I install this extension on Safari 12.0?

nikivdev avatar Sep 20 '18 07:09 nikivdev

Should be right here: https://safari-extensions.apple.com/details/?id=com.flipxfx.svim-6Q2K7JYUZ6

On Thu, Sep 20, 2018 at 12:30 AM Nikita Voloboev [email protected] wrote:

But the extension is not on Safari Extension List. It's downloaded from releases currently.

How can I install this extension on Safari 12.0?

β€” You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/flipxfx/sVim/issues/94#issuecomment-423072121, or mute the thread https://github.com/notifications/unsubscribe-auth/AAF7nuf9Ib8J1O3O_la30LsQpfHh7yIpks5uc0QugaJpZM4U1Xfi .

abrookins avatar Sep 20 '18 13:09 abrookins

Is there any codebase I can look that has partial support of sVim features for new Safari?

nikivdev avatar Jul 12 '19 12:07 nikivdev

Should be right here: https://safari-extensions.apple.com/details/?id=com.flipxfx.svim-6Q2K7JYUZ6 …

Can NOT find sVim...

muyinliu avatar Sep 22 '19 04:09 muyinliu

Can NOT find sVim...

That's because that URL now redirects to the App Store and sVim hasn't been published there so far.

translit avatar Sep 22 '19 06:09 translit

Can NOT find sVim...

That's because that URL now redirects to the App Store and sVim hasn't been published there so far.

Thanks. I spent some time to recover Safari 12 from TimeMachine for macOS 10.13.6, related files:

.
β”œβ”€β”€ Applications
β”‚   └── Safari.app
β”œβ”€β”€ Library
β”‚   └── Widgets
β”‚       └── Web\ Clip.wdgt
β”œβ”€β”€ System
β”‚   └── Library
β”‚       β”œβ”€β”€ Accounts
β”‚       β”‚   └── Notification
β”‚       β”‚       └── CloudBookmarksAccountsNotifier.bundle
β”‚       β”œβ”€β”€ CoreServices
β”‚       β”‚   └── SafariSupport.bundle
β”‚       β”œβ”€β”€ Frameworks
β”‚       β”‚   └── SafariServices.framework
β”‚       β”œβ”€β”€ LaunchAgents
β”‚       β”œβ”€β”€ Preferences
β”‚       β”‚   └── Logging
β”‚       β”‚       └── Subsystems
β”‚       β”‚           β”œβ”€β”€ com.apple.Safari.plist
β”‚       β”‚           └── com.apple.SafariShared.plist
β”‚       β”œβ”€β”€ PrivateFrameworks
β”‚       β”‚   └── SafariFoundation.framework
β”‚       └── StagedFrameworks
β”‚           └── Safari
β”‚               β”œβ”€β”€ JavaScriptCore.framework
β”‚               β”œβ”€β”€ Safari.framework
β”‚               β”œβ”€β”€ SafariShared.framework
β”‚               β”œβ”€β”€ WebCore.framework
β”‚               β”œβ”€β”€ WebDriver.framework
β”‚               β”œβ”€β”€ WebInspector.framework
β”‚               β”œβ”€β”€ WebInspectorUI.framework
β”‚               β”œβ”€β”€ WebKit.framework
β”‚               β”œβ”€β”€ WebKitLegacy.framework
β”‚               └── libwebrtc.dylib
└── usr
    └── share
        └── man
            β”œβ”€β”€ man1
            β”‚   └── safaridriver.1
            └── man8
                β”œβ”€β”€ SafariBookmarksSyncAgent.8
                β”œβ”€β”€ SafariCloudHistoryPushAgent.8
                β”œβ”€β”€ SafariHistoryServiceAgent.8
                β”œβ”€β”€ SafariLaunchAgent.8
                β”œβ”€β”€ SafariNotificationAgent.8
                β”œβ”€β”€ SafariPlugInUpdateNotifier.8
                └── webinspectord.8

Hope it would be helpful. All related path comes from Safari12.1.2HighSierraAuto.pkg with tool Pacifist

muyinliu avatar Sep 23 '19 01:09 muyinliu

Hey everyone!

Sorry I've neglected sVim so much these past years. It was something I was super excited about, life happened, I got busy, and didn't like the direction that Apple was going with their Safari extensions. I really do miss using sVim and I'm ready to get back at it, bite the bullet, and pay for an Apple developer license. This is my first time building an official Safari extension "the new way" so it'll take me a while to get it going, but I'm determined to get sVim up and running again. Also, from what I've seen with new extensions it might be better to just do a full rewrite, which will also add some time. While I can't give a timeline on when it'll be ready, I just wanted everyone to know I'll start back at it again soon πŸ˜„

@abrookins

flippidippi avatar Oct 11 '19 22:10 flippidippi

While I can't give a timeline on when it'll be ready, I just wanted everyone to know I'll start back at it again soon πŸ˜„

Thank you πŸ’š

Please do apply for GitHub Sponsors or create a Patreon. I am willing to donate to support this effort and pay off the license fee and development time. I am sure I am not alone. 😊

nikivdev avatar Oct 11 '19 22:10 nikivdev

I'm ready to get back at it

Thanks so much. After sVim stopped working, I switch to Vimari, but it lacks my beloved gi.

translit avatar Oct 11 '19 22:10 translit

@flippidippi I’ve moved a lot of your extension into the new safari app extension in a branch of my fork. You’re welcome to jump off of that!

de-Blaxe avatar Oct 12 '19 04:10 de-Blaxe

@flippidippi Have you made any progress in making sVim available for Catalina? Would love to help you but not sure how. β™₯️

nikivdev avatar Oct 31 '19 20:10 nikivdev

Someone mentioned there was a working fork of sVim with limited features. Anyone has a link?

nikivdev avatar Jan 24 '20 15:01 nikivdev

@nikitavoloboev The only thing I've seen mentioned before in other issues is https://github.com/de-Blaxe/sVim, but the last commit is from around 10 months ago.

I would pay for sVim running on Safari 13 or can help covering the cost of the dev program, it's the only thing holding me back from upgrading to Catalina and running an old Safari version.

rk1 avatar Jan 24 '20 16:01 rk1

vimari has a Appstore version, but seems buggy to me, would be nice to have a Appstore version of sVim

Rossen K [email protected]于2020εΉ΄1月25ζ—₯ ε‘¨ε…­δΈŠεˆ12:00ε†™ι“οΌš

@nikitavoloboev https://github.com/nikitavoloboev The only thing I've seen mentioned before in other issues is https://github.com/de-Blaxe/sVim, but the last commit is from around 10 months ago.

I would pay for sVim running on Safari 13 or can help covering the cost of the dev program, it's the only thing holding me back from upgrading to Catalina and running an old Safari version.

β€” You are receiving this because you are subscribed to this thread. Reply to this email directly, view it on GitHub https://github.com/flippidippi/sVim/issues/94?email_source=notifications&email_token=ADGMU4JAHFVAQP7ILTTQVZDQ7MGDHA5CNFSM4FGVO7RKYY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOEJ3H47Y#issuecomment-578190975, or unsubscribe https://github.com/notifications/unsubscribe-auth/ADGMU4I7L7NZVB27QD44PEDQ7MGDHANCNFSM4FGVO7RA .

ingjieye avatar Jan 24 '20 16:01 ingjieye

Vimari is not close to sVim at all. Can't even configure (rebind) keys.

nikivdev avatar Jan 24 '20 16:01 nikivdev

I've just been busy with stuff, but maybe I can help around with the port until the creator comes back. The bulk of my port was just moving the old html/js into a Mac app extension and then fixing a few features that I had used frequently.

de-Blaxe avatar Jan 24 '20 16:01 de-Blaxe

@de-Blaxe do you have telegram or somewhere I can message you?

I had some issues building your forked extension. And want to help you move the project forward with the migration.

nikivdev avatar Feb 11 '20 12:02 nikivdev

Any update now? It seems many days passed...

muyinliu avatar Jul 04 '20 00:07 muyinliu

Yes. I started working on it. But I got super annoyed with how development is in Xcode. Does anyone know if there's a way to update the Javascript/CSS without Cleaning/Rebuilding the app every time?

flippidippi avatar Jul 07 '20 16:07 flippidippi

Have you seen Safari Web Extensions? https://developer.apple.com/videos/play/wwdc2020/10665/

paulofaria avatar Aug 23 '20 01:08 paulofaria

That looks promising. Hopefully that will work better because the current developer experience is god awful. I gave up :/ I will look into this once I have the new OS.

flippidippi avatar Aug 31 '20 17:08 flippidippi

Any update??

muyinliu avatar Dec 09 '20 02:12 muyinliu

Unfortunately I no longer work on a Mac :/

flippidippi avatar Jan 28 '21 18:01 flippidippi

After waiting so much time, I decide to switch to Chrome. Goodbye, Safari. Sad :(

muyinliu avatar Jan 30 '21 03:01 muyinliu

I'm ready to get back at it

Thanks so much. After sVim stopped working, I switch to Vimari, but it lacks my beloved gi.

Vimari now support g i as goToFirstInput.

muyinliu avatar Mar 14 '21 19:03 muyinliu