flippidippi / sVim

Safari extension with shortcuts similar to Vim
Other
734 stars 51 forks source link

Release sVim as official extension #94

Open nikitavoloboev opened 6 years ago

nikitavoloboev commented 6 years ago

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?

nikitavoloboev commented 6 years ago

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.

nikitavoloboev commented 6 years ago

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

abrookins commented 6 years ago

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!

nikitavoloboev commented 6 years ago

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.

abrookins commented 6 years ago

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

nikitavoloboev commented 6 years ago

Yes it's correct.

It has to be rewritten as a whole basically.

luchenyuxx commented 6 years ago

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.

abrookins commented 6 years ago

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 notifications@github.com 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 .

luchenyuxx commented 6 years ago

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

nikitavoloboev commented 6 years ago

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.

luchenyuxx commented 6 years ago

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

abrookins commented 6 years ago

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 notifications@github.com 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 commented 6 years ago

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

abrookins commented 6 years ago

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

luchenyuxx commented 6 years ago

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

abrookins commented 6 years ago

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

Given all that, here's what I propose:

nikitavoloboev commented 6 years ago

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

abrookins commented 6 years ago

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.

nikitavoloboev commented 6 years ago

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?

abrookins commented 6 years ago

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 notifications@github.com 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 .

nikitavoloboev commented 5 years ago

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

muyinliu commented 5 years ago

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

Can NOT find sVim...

translit commented 5 years ago

Can NOT find sVim...

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

muyinliu commented 5 years ago

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

flippidippi commented 5 years ago

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

nikitavoloboev commented 5 years ago

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. 😊

translit commented 5 years ago

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.

de-Blaxe commented 5 years ago

@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!

nikitavoloboev commented 5 years ago

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

nikitavoloboev commented 4 years ago

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

rk1 commented 4 years ago

@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.

ingjieye commented 4 years ago

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

Rossen K notifications@github.com于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 .

nikitavoloboev commented 4 years ago

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

de-Blaxe commented 4 years ago

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.

nikitavoloboev commented 4 years ago

@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.

muyinliu commented 4 years ago

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

flippidippi commented 4 years ago

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?

paulofaria commented 4 years ago

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

flippidippi commented 4 years ago

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.

muyinliu commented 3 years ago

Any update??

flippidippi commented 3 years ago

Unfortunately I no longer work on a Mac :/

muyinliu commented 3 years ago

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

muyinliu commented 3 years ago

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.