You can set LSUIElement to 1 as string in the Info.plist:
<key>LSUIElement</key>
<string>1</string>
It removes applications from the application switcher, Dock, and the force quit window. It also removes the menu bar, so it's not really usable with Finder or iTunes.
Editing an Info.plist makes some applications like TextEdit and Chess crash on launch in 10.8. It also invalidates the code signatures of signed applications, so they are not allowed to access keychains automatically.
http://www.cocoabuilder.com/archive/cocoa/141753-lsuielement-and-lsbackgroundonly.html:
NSUIElement is depreciated. However, I remember clearly from working
at Apple (Apple DTS) a few years back that NSUIElement and LSUIElement
map to the same thing (at least it did back when I was there and I
doubt that would have changed). Though NSUIElement is depreciated (NS
stands for next step of course! and LS stands for launch services),
they are exactly the same thing for all intents and purposes.
Both LSUIElement and NSUIElement still work, and both can also be set to true or 1 as integer.
grep -A1 [LN]SUIElement /Applications/*/Contents/Info.plist
Information Property List Key Reference: Launch Services Keys:
LSUIElement
(String
- OS X) specifies whether the app runs as an agent app. If this key is set to “1”, Launch Services runs the app as an agent app. Agent apps do not appear in the Dock or in the Force Quit window. Although they typically run as background apps, they can come to the foreground to present a user interface if desired. A click on a window belonging to an agent app brings that app forward to handle events.
The Dock and loginwindow are two apps that run as agent apps.
Witch has an option to ignore applications:
I have just disabled the application switcher and Dock though. I mainly use keyboard shortcuts and Alfred to switch applications.
Info.plist
will cause the application to give an error on launch.