I have a really nice Matrix inspired screensaver. I would like to have the moving screensaver to be placed as my Desktop background image.
How can I set my screensaver as a background image for the desktop ?
Ask Different is a question and answer site for power users of Apple hardware and software. It only takes a minute to sign up.Sign up to join this community
You also can create an plist file that you place in your user LaunchAgent folder.
You than loaded at a terminal with:
launchctl load /Users/username/Library/LaunchAgents/com.username.runscreensaver.plist
Or unload it with:
launchctl unload /Users/username/Library/LaunchAgents/com.username.runscreensaver.plist
Here is the content of this plist file:
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> <plist version="1.0"> <dict> <key>KeepAlive</key> <true/> <key>Label</key> <string>com.username.runscreensaver</string> <key>ProgramArguments</key> <array> <string>/System/Library/Frameworks/ScreenSaver.framework/Resources/ScreenSaverEngine.app/Contents/MacOS/ScreenSaverEngine</string> <string>-background</string> </array> <key>ThrottleInterval</key> <integer>0</integer> </dict> </plist>
Unfortunately (at least under 10.9.5) the ScreenSaverEngine set the window level wrong (below kCGDesktopWindowLevel) to work correct with mission control and spaces witch leads to a few issues during restart, change screen, login and logout that leads to an invisible screensaver .
To fix this issues you need to write your own screensaver that inherits the properties of ScreenSaverEngine while running and correct the window level (eg. [self.window setLevel:kCGDesktopWindowLevel];).