toxicsoftware.com

RANDOMIZE USR 0

toxicsoftware.com header image 2

Service Scrubber

December 22nd, 2005 · Comments · Default

A lot of Mac blogs are getting excited about Service Scrubber. While currently probably the best solution to the crazy Service menu situation on Mac OS X (and something I am now using), users need to be aware that Service Scrubber directly modifies the user’s applications. Namely the application will modify an Application’s Info.plist file. However it will make a backup of the data it modifies (although it would probably be best to make a copy of the entire Info.plist file instead of just copying the previous value of the NSServices key into a backup key). Why is this a big deal? Well – it has several side effects:

  • If you upgrade the application with a newer version, your services preferences will be lost. You’ll need to re-run Service Scrubber and re-apply your settings. This could get very tedious with lots of applications. I’m sure many mac users like to keep their software as up to date as possible.
  • The services for a particular application will be modified for ALL users on the machine. To most people this is probably a good thing though, but you should be aware of this.
  • Because Services Scrubber finds all applications on the user’s machine (possibly via the LaunchServices API) developers need to be aware that they could be modifying the services on one of their own applications that they need to ship. Of course a developer who disables the services on his or her own application should rethink the application’s use of services.
  • In some situations (applications on read-only media, users not having privilege to write to the applications folder) Service Scrubber just wont work. I would imagine that these situations are rather uncommon for typical home users

I think Service Scrubber is a good piece of software but it has some rather serious limitations/side effects. I don’t think directly modifying an the data files of an application is the best way to control the Services menu. Personally I’d prefer to see a Haxie directly modify the service menu – that way if you decide to revert back to normal you can just uninstall the Haxie. Any developers out there willing to write this hack?

  • Update: A few grammar fixes and minor changes.

Tags:

  • Hey Peter,

    I only noticed the third side effect because Service Scrubber listed one of the apps I develop multiple times.

    I think the worst side effect might be the need to reapply the preferences every time an application is installed. Perhaps you might want to cache the user's settings and just have a re-apply button? That way instead of a using having to scan the list to find what applications/services he wants to disable he could just click one button.

    Also - I think it would be wiser to backup the settings to a separate file, that way the user could restore the settings without ServiceScrubber just by overwriting the original Info.plist with the backup (you could also use the unix find command to find all modified applications) if ever ServiceScrubber stopped working...

    Personally I'd prefer a Haxie to solve this. It seems more elegant than modifying whole bunches of applications. While Haxies can reduce system stability I think most users know they what they are getting into. You can also license APE for free if you release your software as freeware.

    Well actually the best solution would be for Apple to fix the solution themselves, without Service Scrubber (or Blacktree's prefpane that Mark Grimes mentions) the services menu is practically unusable. Thanks for releasing such a great piece of software to help deal with the situation.
  • Thanks for listing these side effects -- while I have listed most of them in Service Scrubber's "Read Me" file, repeating them is a good thing, as most users don't bother reading "Read Me" files...

    ;-)

    And to be honest, I've never even thought of the third one.

    As far as creating a haxie for the same purpose is concerned, I agree that this would be a good solution for users who don't want their info.plists edited. Here's a couple of reasons why I didn't do it that way:

    1. Some users don't want haxies on their computers. (Me included, BTW, but that's just my personal preference. I'm not saying that APE is a bad thing. In fact, it's the most elegant way of doing some things.)

    2. Unsanity's application enhancer SDK is $100 for developers. While that's not exactly a major investment, you don't want to rely on a framework that (i) is not free and (ii) might break on future OS X versions when you're releasing software as free-/donationware.

    So there you have it. Thanks again for pointing Service Scrubber out!
  • Excellent points made -- prior to checking out ServiceScrubber I was using Blacktree's Services PrefPane.
blog comments powered by Disqus