Is there a way in Mac OS X to stop applications from stealing focus, especially between spaces?

There is also the '-g' option to 'open' that will run programs in the 'background' in that they won't steal focus away from the current app. Try

open -g /Applications/iCal.app

for instance. See here for details:

If you want to edit the Info.plist of some application to make this permanent, you can add the key

<key>LSBackgroundOnly</key>
<true/>

See here for details.


This will prevent any autoswitching of Spaces, which meets your criteria, but does other things, too, that you may not want:

defaults write com.apple.dock workspaces-auto-swoosh -bool false
osascript -e 'tell application "Dock" to quit'