Search code examples
macosplistcfpreferences

Not able to set screensaver idle time as root


Script i used is

#!/bin/sh
# grab current user
curUser=`ls -l /dev/console | cut -d " " -f 4`

# grab the system's uuid
if [[ `ioreg -rd1 -c IOPlatformExpertDevice | grep -i "UUID" | cut -c27-50` != "00000000-0000-1000-8000-" ]]; then
        macUUID=`ioreg -rd1 -c IOPlatformExpertDevice | grep -i "UUID" | cut -c27-62`
fi
defaults write /Users/$curUser/Library/Preferences/ByHost/com.apple.screensaver.$macUUID.plist idleTime -int 900

But later when i go and see Desktop&screensaver settings in mac . I did not find start after 15min.

But when i gave

defaults read /Users/$curUser/Library/Preferences/ByHost/com.apple.screensaver.$macUUID.plist idleTime

output is 900

even i tried by killing cfprefsd daemon but still this new value is not getting set

killall cfprefsd

Please can anyone tell me where do i did mistake


Solution

  • I tried an alternate script and it worked. But before executing this command we should make sure that we quit system preferences.

    #!/bin/bash
    currentuser=`ls -l /dev/console | cut -d " " -f 4`
    sudo -u $currentuser defaults -currentHost write com.apple.screensaver idleTime -int "120"
    
    sudo -u $currentuser defaults -currentHost read com.apple.screensaver idleTime