Skip to main content
Solved

Message screen saver

  • September 1, 2016
  • 3 replies
  • 16 views

Forum|alt.badge.img+7

I have a profile set to use Message as the screen saver. Dose anyone know how to set the message for the screen saver via script?
Thanks

Best answer by thoule

I just put this together quickly, but haven't tested it. should work... Might need a logout/login before the text is picked up by the screensaver.

#!/bin/sh         
#Todd Houle
#1Sept2016            
ssTEXT="Meat is Murder"

UUID=$(/usr/sbin/system_profiler SPHardwareDataType | awk '/UUID/ { print $3; }')
LocalHomes=$(/usr/bin/dscl . -list /Users NFSHomeDirectory | grep -v /var/ | grep -v /Library/ | awk '$2 ~ /^// {print $2;}')

## FEU                            
for OneHome in $LocalHomes; do
    defaults write $OneHome/Library/Preferences/ByHost/com.apple.ScreenSaver.Basic.$UUID.plist MESSAGE "$ssTEXT"
    owner=$(ls -l $OneHome/Library/Preferences |grep ByHost|awk '/ByHost/{print $3}')
    chown $owner $OneHome/Library/Preferences/ByHost/com.apple.ScreenSaver.Basic.$UUID.plist
done

##  FUT
defaults write /System/Library/User Template/English.lproj/Library/Preferences/ByHost/com.apple.ScreenSaver.Basic.$UUID.plist MESSAGE "$ssTEXT"

## Fix user template
/usr/sbin/chown root /System/Library/User Template/English.lproj/Library/Preferences/ByHost/com.apple.ScreenSaver.Basic.$UUID.plist
/bin/chmod 700 /System/Library/User Template/English.lproj/Library/Preferences/ByHost/com.apple.ScreenSaver.Basic.$UUID.plist

3 replies

Forum|alt.badge.img+15
  • Contributor
  • 589 replies
  • Answer
  • September 1, 2016

I just put this together quickly, but haven't tested it. should work... Might need a logout/login before the text is picked up by the screensaver.

#!/bin/sh         
#Todd Houle
#1Sept2016            
ssTEXT="Meat is Murder"

UUID=$(/usr/sbin/system_profiler SPHardwareDataType | awk '/UUID/ { print $3; }')
LocalHomes=$(/usr/bin/dscl . -list /Users NFSHomeDirectory | grep -v /var/ | grep -v /Library/ | awk '$2 ~ /^// {print $2;}')

## FEU                            
for OneHome in $LocalHomes; do
    defaults write $OneHome/Library/Preferences/ByHost/com.apple.ScreenSaver.Basic.$UUID.plist MESSAGE "$ssTEXT"
    owner=$(ls -l $OneHome/Library/Preferences |grep ByHost|awk '/ByHost/{print $3}')
    chown $owner $OneHome/Library/Preferences/ByHost/com.apple.ScreenSaver.Basic.$UUID.plist
done

##  FUT
defaults write /System/Library/User Template/English.lproj/Library/Preferences/ByHost/com.apple.ScreenSaver.Basic.$UUID.plist MESSAGE "$ssTEXT"

## Fix user template
/usr/sbin/chown root /System/Library/User Template/English.lproj/Library/Preferences/ByHost/com.apple.ScreenSaver.Basic.$UUID.plist
/bin/chmod 700 /System/Library/User Template/English.lproj/Library/Preferences/ByHost/com.apple.ScreenSaver.Basic.$UUID.plist

Forum|alt.badge.img
  • New Contributor
  • 1 reply
  • November 27, 2017

The scrip works great. Thank you. To change the settings immediately and not have to powercycle or logout/login, just add the following to the end:

killall cfprefsd

Works great for me.


shrisivakumaran
Forum|alt.badge.img+8
  • Jamf Heroes
  • 85 replies
  • September 25, 2022

@thoule is it working for Monterey?