Advertisement

The right and wrong ways to run apps without dock icons

I recently downloaded an app that I wanted to run without a dock icon. There wasn't a preference to run that way, but I remembered that there was a way to edit a file within each app's "bundle" (.app "files" are actually folders or packages).

Sure enough, a little time on Google brought me to information about adding or changing the "LSUIElement" key in the app's Info.plist file. It also led me to Dockless, which is an app that automatically sets that key for you when you drag the app to Dockless' window.

That seemed much safer than editing the file myself, so I downloaded Dockless, dragged the app to it and restarted the app.

It crashed immediately and every time afterwards.

I'm no math whiz, but I can put two and two together. I emailed the developer, who confirmed my suspicion that editing the app that way had broken code signing, a feature that Apple introduced in 10.5 and which is now an essential part of most current apps, including apps from the Mac App Store. The solution was simple: delete the app and re-download a clean copy from the Mac App Store. (Running Dockless again to "undo" the change was not enough in my experience.)

Just for the sake of completeness, I tried Dock Dodger, another application designed to do the same thing. To the developer's credit, there is a disclaimer on their website that "you may get some strange behavior or find some features inaccessible" after using it. I made a copy of iCal and ran Dock Dodger on the copy. It ran without a dock icon, but it also refused to store my MobileMe password, meaning that my calendars would not sync via MobileMe.

Lesson learned. Being able to coerce apps to run without a dock icon might have been something we could get away with in the past, but it was never a very good idea, and like Lando's deal with Darth Vader, it's getting worse all the time.

Fortunately I've noticed more and more applications that give users a preference setting to turn off the dock icon. If app developers build this into their apps, the feature doesn't break code signing, and the apps will continue to function normally.

So what should you do if you find an app that you want to run "dockless" that doesn't have a preference setting for it? Well, if you want to try one of the above apps (which I do not recommend), be sure to make a copy of the app, and try the changes on the copy. That way, if it doesn't work, you can trash the copy and still have your "clean" original. My recommendation is to contact the developer and ask (nicely) for them to consider adding the feature in a future version. Developers weigh new feature requests based on a number of different things, but user requests are an important part of that decision process. It may not be feasible for all applications, but if you don't ask, they'll never know it was a feature you wanted.