MacOS – Set text for macOS floating text screensaver from command line

macosscreensaver

I've tried a variety of different ways to change the message for the "message" screen saver on macOS 10.10.3. When I change it through the GUI, at least the following plist file is updated:

~/Library/Preferences/ByHost/com.apple.ScreenSaver.Basic.UUID.plist

When I try to update this file as root using:

defaults write /Users/myusername/Library/Preferences/ByHost/com.apple.ScreenSaver.Basic.UUID.plist MESSAGE "test"

or

defaults write ~/Library/Preferences/ByHost/com.apple.ScreenSaver.Basic.UUID.plist

after closing the prefs window, when I subsequently re-open the sys prefs and view the screen saver settings, they still show the old settings.

The following command to restart the prefs engine doesn't work either:

killall cfprefsd

If I modify the above files using defaults without opening the system prefs, then restart, strangely, the screensaver reverts to the default computer name after the restart.

Ultimately I'm trying to enforce a custom screensaver with floating text on all my macOS machines.

Best Answer

this thread is no.1 in Google for "macOS screensaver text" query, so I decided to put my answer here.

Currently (macOS High Sierra 10.13.5) if you want to change the text of your "basic" screensaver you have to type:

defaults write ${HOME}/Library/Preferences/ByHost/com.apple.ScreenSaver.Basic.plist MESSAGE "your message"

after that it's necessary to reload:

killall cfprefsd

after that you can test your changes with running a Screen Saver from a command line:

/System/Library/CoreServices/ScreenSaverEngine.app/Contents/MacOS/ScreenSaverEngine

For my needs I wrote a small script that inserts a ten-minute time interval in the screen saver (to show how long the break takes). It's here macOS ScreenSaver Text.

Hope this helps someone. Cheers.