132

After upgrading to macOS Sierra, I'm getting the notification that "Your disk is almost full. Save space by optimizing storage.":

macOS notification

The options appear to be to store my files in iCloud, automatically delete files, or manually delete files:

enter image description here

My problem/irritation is that I have 80GB free of my 440GB volume.

The question: is there a way to silence this notification in a (semi-)permanent fashion, or to change the threshold it uses for the notification?

7
  • 14
    The same here: "You only have 17.57 GB of storage. Save space by optimizing storage." on my Macbook Pro flash storage. Ridiculous.
    – kenorb
    Dec 4, 2016 at 16:45
  • A few suggestion, though some make me cringe. But, when things are annoying, sometimes you have to try them. Mar 6, 2017 at 11:52
  • The Mojave upgrade to 10.14.1 seems to have fixed this bug.
    – pseudosudo
    Nov 17, 2018 at 0:14
  • 4
    @garageàtrois Since upgrading to Mojave, I get the notification more frequently i.e. every few minutes!
    – Bhav
    Nov 22, 2018 at 20:55
  • And you did empty the trash?
    – Lisa Ann
    Dec 9, 2018 at 8:44

4 Answers 4

129

The solution to disabling the "almost full" and "full" notification is to disable the daemon responsible for it:

launchctl unload -w /System/Library/LaunchAgents/com.apple.diskspaced.plist

or

launchctl stop com.apple.diskspaced

Alternatively, if you only want to prevent the "almost full" from appearing so often then you can lower the GB threshold via:

minFreeSpace (int) - minimal free size in GB. Default: 20

The default 20GB is too high for small SSDs and a possible bug causes the alert to be shown every day rather than just once, so as a workaround you can lower the free space before the alert appears, e.g. to 10GB:

defaults write com.apple.diskspaced minFreeSpace 10

The daemon only reads its prefs on startup so you need to restart it if you have system integrity turned off:

launchctl unload -w /System/Library/LaunchAgents/com.apple.diskspaced.plist
launchctl load -w /System/Library/LaunchAgents/com.apple.diskspaced.plist

Otherwise kill it:

killall diskspaced

In case you are interested in the other preferences for these disk alerts you can view some of them using the help param:

/System/Library/PrivateFrameworks/StorageManagement.framework/Versions/A/Resources/diskspaced help
---
  Domain: com.apple.diskspaced
  Supported keys:
  debugLog (BOOL) - log additional debug information. Default: NO
  checkAllVolumes (BOOL) - check all volumes. Default: NO
  minDiskSize (int) - minimal disk size in GB. Default: 128
  minFreeSpace (int) - minimal free size in GB. Default: 20
  minPurgeableSpace (int) - minimal purgeabe space size in GB. Default: 20
---
  Commands: removeAllNotifications - Removes all scheduled and delivered user notificiations.

And here are a couple of hidden ones:

warningInterval (integer default 0)
lastWarningDate (string e.g. 2017-05-05 16:48:29 +0000)

I didn't look too closely at but it is possible setting the last warning date to a date in the future would also prevent the alert displaying.

16
  • 15
    osX is bloody pathetic that you have to do use terminal to turn these things off. May 15, 2018 at 11:25
  • 19
    Operation not permitted while System Integrity Protection is engaged
    – Raptor
    May 31, 2018 at 1:42
  • 25
    "a possible bug causes the alert to be shown every day" Mine pops up every 5 f**ing seconds. This answer really helped.
    – Aloha
    Aug 18, 2018 at 1:40
  • 4
    Yeah with Mojave this alert is popping up literally every 20 seconds for me, not daily. Maybe if Xcode would stop automatically installing 20 gb worth of simulator files with every update, this wouldn't be an issue. Alas... @malhal I have set the default for min space to a lower value. Is there a way to see which defaults you've manually changed, or should I keep track of something like this myself?
    – Jake T.
    Nov 3, 2018 at 21:49
  • 8
    We need an updated answer for Mojave
    – zcahfg2
    Nov 4, 2018 at 19:29
44

macOS Mojave

See: How to access a launch daemon's values/ system defaults value

macOS Sierra

On Sierra this command didn't work for me:

launchctl unload -w /System/Library/LaunchAgents/com.apple.diskspaced.plist

due to System Integrity Protection engaged, so to stop the diskspaced service, run:

launchctl stop com.apple.diskspaced

Note: Use start to start again or list to see the details (e.g. its PID).

If the service is restarting after a while, try the following command to stop it:

killall -STOP diskspaced

Changing warning level and interval

To change the user's default settings, here are some example commands:

defaults write com.apple.diskspaced freeSpaceWarningLevel 1
defaults write com.apple.diskspaced warningInterval 3600
defaults write com.apple.diskspaced debugLog 1
defaults write com.apple.diskspaced checkAllVolumes 0

Then restart the service:

launchctl stop com.apple.diskspaced && launchctl start com.apple.diskspaced

To see the loaded settings, run diskspaced, e.g.:

$(find /System/Library/PrivateFrameworks -name diskspaced -print -quit)
2017-08-04 18:32:27.943 diskspaced[92401:12312556] FreeSpaceWarningLevel: 1
2017-08-04 18:32:27.943 diskspaced[92401:12312556] WarningInterval: 3600
2017-08-04 18:32:27.943 diskspaced[92401:12312556] Check All Volumes: NO

Notes

I believe parameters mentioned by @malhal no longer exist. Here is a simple command to test this:

$ grep -A6 debugLog <(strings $(find /System/Library/PrivateFrameworks -name diskspaced -print -quit))
debugLog
freeSpaceWarningLevel
FreeSpaceWarningLevel: %ld
warningInterval
WarningInterval: %ld
checkAllVolumes
Check All Volumes: %@

Troubleshooting

Check the logs by this command for any warnings:

grep com.apple.diskspaced /var/log/system.log
6
  • 2
    Running those commands as of Mojave doesn't seem to have any effect. Nov 2, 2018 at 19:58
  • @kenorb, so what does that last grep command do, for macOS mojave I get a different output (see here), and I'm trying to use that to disable the popup on Mojave. Any ideas how that could be done?
    – JoeVictor
    Nov 14, 2018 at 20:12
  • 2
    Still running Sierra on a MBA 2012. That nag screen was annoying, and put me in a position to not want to buy another Macbook. killall -STOP diskspaced fixed this for me... Thanks
    – mrSidX
    Sep 2, 2019 at 22:45
  • 1
    launchctl list com.apple.diskspaced to find PID, then kill -KILL PID. Although none of the other kill commands worked in High Sierra, this one works.
    – Magne
    May 10, 2020 at 16:09
  • @Magne On High Sierra I am getting "arguments must be process or job IDs" Jun 17, 2020 at 20:27
11

I think this notification is a bug.

I have 760GB free on my drive (a 1TB drive) and still get this same notification every morning since upgrading to Sierra.

I enabled Optimize Storage (but not Store in iCloud).

3
  • 9
    There's a system process called deleted that purges caches and whenever it does, it sends a CACHE_DELETE_PURGEABLE_UPDATED distributed notification to all apps. Whenever that notification is sent, the "Your disk is almost full" notification shows up, so I think it's a bug in some app that's listening for that distributed notification.
    – inket
    Jan 27, 2017 at 2:12
  • 1
    @inket How does one watch these notifications?
    – Mike Boers
    Mar 11, 2017 at 13:56
  • 4
    Agreed.I am on Mojave 10.14, none of these suggesting did anything. This is really annoying.
    – vknyvz
    Nov 9, 2018 at 20:53
3

Turning on Do Not Disturb mode for notifications will silence the "Your disk is almost full" notifications. There is a downside as this will silence all notifications.

notification sidebar with do not disturb turned on, it says "Will turn off tomorrow" underneath

This will not help with the underlying issue of your disk being too full if it is in fact too full. Additionally, you may need to turn Do Not Disturb on again. It looks like it may be possible to get it remain on for all but about one minute of the day, but I'm not sure the developers intended Do Not Disturb to be used continually.

notifications preference pane set to have Do Not Disturb from 12AM to 11:59PM

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .