Posted on 04-29-2016 08:04 AM
Looking for a way to disable notifications, either by a script equivalent to option clicking or using DND from 7am to 2am, something like that?
Thanks
Dave
Posted on 04-29-2016 08:11 AM
Hmm, not sure if there's a way to turn off Notifications on a global level or not in a script. Maybe.
You could also look at @jacob_salmela's NCutil utility, which allows you to set alert styles for individual apps. Not sure if that's sufficient for what you're looking for though. Maybe he or someone else knows of a single command that will turn off all Notifications.
Posted on 04-29-2016 08:20 AM
launchctl unload /System/Library/LaunchAgents/com.apple.notificationcenterui.plist
The above turns off Notification Center, as in, disables it completely so it doesn't show notices and the small Notification UI icon in the menubar does nothing when its clicked. (It remains in the menu, but is effectively neutered) Only thing is, since its a LaunchAgent, it needs to be run as the logged in user. Don't be fooled by the fact that the launchd plist resides in /System/Library/ It can and must be run as a user to disable it, not root.
In my experiementing, to re-enable it you need to run, again, as the user:
launchctl load /System/Library/LaunchAgents/com.apple.notificationcenterui.plist
killall SystemUIServer
If I don't restart the menubar (SystemUIServer) it doesn't really reload the Notification Center menu item.
To be very clear, the above is a hacky kludge, no mistake about it, and I'm sure Apple would highly disapprove, so hopefully there's a more accepted way of turning this stuff off.
Posted on 04-29-2016 09:46 AM
I will most definitely experiment with this launchd that, as you say, neuters it! Thanks!
Posted on 04-29-2016 09:59 AM
I tried that and it most definitely works, but after thinking about it more, I'm not sure I want the whole notifications to be disabled (neutered).
My main goal is to NOT have any of the annoying system update, firefox updates, etc.. sliding in from the right side of the screen.
DND would be perfect. Some other admins spoke about using it as a custom setting in Profiles, but I was unable to get that to work on any machine other than the one it was created on (ByHost naming). When I removed that part of the ByHost file name it wouldn't work at all.
Unloading the launchd for Notifications isn't the same as DND or option clicking.
Any other thoughts?
Thanks
Posted on 04-29-2016 10:42 AM
OK, so you want to just silence any notification pop ups, but still allow users to manually go into NC and see any messages that have come through. That right?
I did a little more digging and found that the plist that gets written to when DND mode is enabled is
~/Library/Preferences/ByHost/com.apple.notificationcenterui.[UUID].plist
it looks like this when DND is on/enabled
{
doNotDisturb = 1;
doNotDisturbDate = "2016-04-29 17:27:20 +0000";
}
The doNotDisturb key is boolean, so in the above case its set to true. The date key is the date it was set into DND mode as far as I can tell.
It might be possible to create a custom user level Configuration Profile that would apply this change. The only problem is I believe it resets out of DND after 24 hours, if I recall correctly. So a Config Profile may not be able to keep it permanently in that state.
Maybe you can have an ongoing policy that runs a script to set the two keys to the values they need to be to keep it off.
Posted on 04-29-2016 12:37 PM
Yes, that is the same files I was using to import into Profile Manger, but now would probably use with JSS (we just got JAMF).
Apparently this used to work before El Capitan. They sure like to keep us working on work-arounds! haha
To save time though, since this is for labs and users don't have iCloud settings and such anyway, maybe I will just use the unload!
Posted on 05-03-2016 10:53 AM
@kutzboy NCuti.py cannot set it globally for all users; it's still a feature I am working on implementing. I had a few ideas for doing this via some bash-fu but it hasn't been very effective.
Posted on 05-22-2017 01:01 PM
Does anyone know a method that does not require turning off SIP?
Posted on 06-13-2017 09:21 AM
@jacob_salmela Does NCutil utility work in Sierra?
Posted on 06-13-2017 09:40 AM
@myronjoffe not without disabling SIP...
Posted on 06-28-2017 05:38 AM
I run this as part of a script on all shared Macs (labs, loaners, etc.) to disable Notification Center:
MAC_UUID=$(system_profiler SPHardwareDataType | awk -F" " '/UUID/{print $3}')
# Setup DND on NotificationCenter
for USER_TEMPLATE in "/System/Library/User Template"/*
do
/usr/bin/defaults write "${USER_TEMPLATE}"/Library/Preferences/ByHost/com.apple.notificationcenterui.$MAC_UUID "dndEnd" -float 1379
/usr/bin/defaults write "${USER_TEMPLATE}"/Library/Preferences/ByHost/com.apple.notificationcenterui.$MAC_UUID "doNotDisturb" -bool FALSE
/usr/bin/defaults write "${USER_TEMPLATE}"/Library/Preferences/ByHost/com.apple.notificationcenterui.$MAC_UUID "dndStart" -float 1380
done
Probably stole that from...somewhere. Can't remember where or I'd give proper credit.
Works for all accounts created thereafter. Should be possible to extend that to already existing accounts.
Posted on 07-25-2019 12:28 PM
@barnesaw thank you that got rid of the "Welcome to macOS Mojave" notifications I was trying to squash and also sped up login times by 20 to 30 seconds. It was pretty incredible.