syncthing / syncthing-macos

Official frugal and native macOS Syncthing application bundle
https://syncthing.net
MIT License
2.76k stars 148 forks source link

Sparkle auto-update dialog popup interrupts workflow #181

Open rogerso opened 2 years ago

rogerso commented 2 years ago

When the auto-updater detects a new version and shows the update prompt, I'm almost always in the middle of doing something else. The prompt steals window focus, which is super annoying.

Can syncthing notify the user using Notifications instead of popping up a window? Thanks.

xor-gate commented 2 years ago

Dear @rogerso, thanks for reporting. I understand the workflow is interrupted by this nag dialog. Currently there is no option in syncthing-macos to disable update checking and only do manual update. There are two options:

Let me known what you think.

bencaf commented 2 years ago

While I'm not original poster, I'd really appreciate a checkbox to disable update checking, so that I can manually update syncthing. I use it on a remote computer I have limited access to, and it seems the auto update popup prevents the sync from starting when the computer restart or stops the sync while it's running, which is inconvenient as it require manual intervention on the computer.

xor-gate commented 2 years ago

Thanks @bencaf for the extra information, this is indeed a different case and a serious problem and should not block starting syncthing.

rogerso commented 2 years ago

@xor-gate, thank you for your reply. Given the technical limitations, a checkbox for disabling the auto update check as a workaround would be great. Much appreciated, and thank you again for your work.

bencaf commented 2 years ago

@xor-gate I guess so, do you want me to open a New issue instead ?

xor-gate commented 2 years ago

Thanks @rogerso for the idea, we will see what the people at Sparkle say about the notification center feature. But this is will take some time and maybe will not be implemented.

Controlling the auto-update enable/disable is now not possible and should not be to hard to implement. I have created issue #182 for this.

I will leave this issue open because this is about suppressing the popup with a notification instead.

xor-gate commented 2 years ago

It seems since Sparkle 2.2 there has been introduced a new feature called "Gentle Update Reminders" which probably is a solution to the problem you @rogerso are facing.

As of Sparkle 2.2, Sparkle prioritizes showing scheduled update alerts for regular (non-backgrounded) applications at opportune times when:

  • The user just launched your app or interacted with the updater recently (for example, granting Sparkle permission to allow automatic update checks)
  • The user’s system has been idle for some time and no power assertion has been made by your app to prevent display sleep while your app is active
  • The user comes back to your application from another application (instead of showing an alert when a user is actively using your app)
xor-gate commented 2 years ago

Sparkle 2.2 mentions posting update notifications to the notification center:

Posting a user notification to Notification Center Note posting a notification to Notification Center is an auxiliary but not definitive way of notifying users of updates. There is no guarantee the notification will be delivered and that the user will see the notification. It is also common for a user to not approve your app from delivering notifications.

This is a unreliable way to post updates to the user.