So, I’ve had a little time to test out some of the options presented in a previous post and actually tried out SpaceStation (at version 0.3 at the time of this post).
I’ve included the instructions here. It works well, I found that editing and saving the preferences file, then killing the daemon with Activity Monitor works more smoothly than the recommended “killall -2”.
Its not easy to change your background images, since it requires a plist edit. It should be trivial to add a drag ‘n drop selector for each space. Let me know if you decide to write one.
Okay, SpaceStation v0.3 is available. (It’s the same link as before.)
I made a LaunchAgent, which registers the daemon with launchd. This will run the daemon automatically when you login, and also restart it if it dies for whatever reason.
I also made a little installer script. This will copy the LaunchAgent and daemon to where they need to live, and give you a dummy pref file if you don’t already have one. (It won’t clobber an existing pref file.) You can also use it to uninstall, which will move the LaunchAgent and daemon to the Trash, but will leave your prefs alone in case you want to use it again later. Once you run the installer, you’ll need to logout to make the changes take effect. (Sorry about that, but I’m still deciphering the intricacies of launchctl.) Just FYI, the daemon goes in to /Library/Application Support/SpaceStation, the LaunchAgent goes in to ~/Library/LaunchAgents, and the pref file goes in to ~/Library/Preferences. This means the daemon will be available to all users, but it will only work for users that have the LaunchAgent and pref file. You’re welcome to install everything manually, if you prefer. (All the installer does is copy and delete files, as appropriate.)
Double-clicking the pref file should open the Property List Editor. The numeric properties in the Pictures dictionary correspond to the various Spaces. The “Default” property is used if a numeric property is missing or blank. (You can define a different Default Picture, if you’d like.) I’m pretty sure that if you try to set the Desktop Picture to a file that doesn’t exist, you’ll just wind up with DefaultDesktop.jpg, which is the default Default Picture. (That’s a function of the OS, not something that I’m doing.) The ScanInterval is how often SpaceStation checks for a Space change, in seconds. The default value is 0.1s, but you can tweak this as you see fit. A little editing tip: If you drag a picture from the Finder to the value field in Property List Editor, it will insert the whole path. (Copying and pasting only gets the file name.) This should save you some typing.
To make preference changes take effect, you need to issue a killall -2 spacestationd in the Terminal. (You can leave out the -2, but doing so will actually kill the daemon instead of making it reread the prefs file, but again, launchd will just relaunch it if it dies.) Make sure you save the changes in Property List Editor before issuing the killall.