knurling / ServiceStation

Service Station
37 stars 1 forks source link

Service Station Finder Extension disables Dropbox Status Icons #36

Open gordon8214 opened 4 years ago

gordon8214 commented 4 years ago

The Service Station Finder extension seems to cause the Dropbox Finder extension's status indicators on items to disappear.

If both extensions are enabled, Dropbox has no status indicators. If I turn off the Service Station extension, the Dropbox indicators appear. If I then turn Service Station back on, the indicators remain until reboot/logout/Finder restart, at which point they disappear again.

Video Demo

VKondakoff commented 4 years ago

I can confirm the issue. SS Version 2020.5 (18), Catalina 10.15.4.

pkamb commented 4 years ago

This will unfortunately most likely be cantfix for the current versions of macOS.

Service Station doesn't do any badging work as a Finder Extension, which corresponds with advice given by Apple:

For example, I would avoid doing ANY icon badging, since it’s very likely to interfere with other FinderSync apps.

I also don't have a good way to exclude the Dropbox folder from the list of Service Station-enabled folders (which you might not want to do anyway).

It appears that macOS is simply picking a single Finder Extension to be responsible for badges in any given folder. If you enable Dropbox and then Service Station, Dropbox wins. But if Service Station is enabled first, Dropbox can't add its icons. I'm not sure what heuristic is being used, but it's unfortunately not alphabetical :(

This will probably need an OS update from Apple. I will log a bug and post it here, and any duplicate bugs you file will help.

It would probably also work to somehow script your system to periodically disable both Finder Extensions and re-enable them in the correct order. I won't be able to do that from within the sandboxed Service Station app, but it could be done from a un-sandboxed context

gordon8214 commented 4 years ago

Did you ever file a bug for this? Do you have the number?

pkamb commented 4 years ago

Finder Sync Extension badges not shown if multiple Finder Sync Extensions are enabled.

DUPLICATE OF FB7711264

I'm using the Finder Sync Extension app Service Station: https://apps.apple.com/us/app/service-station/id1503136033?ls=1/

I also have Dropbox installed, and the Dropbox Finder Extension enabled.

Service Station does not show any badge icons on Finder items. Dropbox does.

But if you enable Service Station BEFORE Dropbox, Dropbox will not be able to show any Finder badge icons.

Reproduction steps:

  1. System Preferences > Extensions > Finder Extensions.
  2. Enable Service Station Finder Extension, then Dropbox Finder Extension
  3. Observe your dropbox folder at ~/Dropbox/

Result:

  • Dropbox syncing icons are NOT shown on Finder icons in Dropbox.

Expected Result.

  • Dropbox folder icons should be shown.
  • Service Station does not use Finder icons. Dropbox should thus be allowed to.

Fix:

If you reverse the order and Enable Dropbox PRIOR TO enabling Service Station, the Dropbox finder icons are shown.

  1. Disable Service Station extension.
  2. Note that Dropbox icons are now shown!
  3. Enable Service Station extension.
  4. Dropbox icons are still shown.

Notes:

Service Station's FIFinderSyncController.default().directoryURLs directory contains a parent directory of the Dropbox folder.

Apparently order matters. Only the first Finder Sync Extension to be enabled will be able to display badges, even if that extension does not ever show badges.

This should be changed to instead show badges for the first Extension that attempts to Display Finder icon badge icons.

gingerbeardman commented 4 years ago

this feels like a namespace clash, could it be?

pkamb commented 4 years ago

What namespace? The apps have different BundleIDs...

gingerbeardman commented 4 years ago

Yeah, I have no idea. :)

moffat commented 4 years ago

In case anybody finds this useful, I solved this problem (I'm running using a Keyboard Maestro Macro that is triggered every time Finder launches. It waits to make sure finder is running and then deactivates and activates the ServiceStation finder extension with:

pluginkit -e ignore -i com.knurling.ServiceStation.FinderSync
pluginkit -e use -i com.knurling.ServiceStation.FinderSync

The macro is attached.

Service Station Fix.kmmacros.zip

gordon8214 commented 4 years ago

In case anybody finds this useful, I solved this problem (I'm running using a Keyboard Maestro Macro that is triggered every time Finder launches. It waits to make sure finder is running and then deactivates and activates the ServiceStation finder extension with:

pluginkit -e ignore -i com.knurling.ServiceStation.FinderSync
pluginkit -e use -i com.knurling.ServiceStation.FinderSync

The macro is attached.

Service Station Fix.kmmacros.zip

Great workaround. I found I had to add sleep 1 between the commands in order for it to work reliably though.

luckman212 commented 2 years ago

I don't think this is a problem anymore with the new FileProvider based extensions for OneDrive, Dropbox, Google Drive etc? Are you guys still seeing this issue on recent versions of macOS?

EddyRezumi commented 2 years ago

I don't think this is a problem anymore with the new FileProvider based extensions for OneDrive, Dropbox, Google Drive etc? Are you guys still seeing this issue on recent versions of macOS?

I have OneDrive on macOS Monterey and badges are showing up just fine. But instead, I don't have the app I set up in the contextual menu when I right click a file. The Finder doesn't allow 2 extensions to change it's right click menu ?

EDIT : I tried to deactivate OneDrive extension, did not help. And actually we can't have it disabled, since it is necessary for synchronization.