Skip to main content

Hi all,

Does anyone have a way of enabling "prevent app nap" systematically? My main applications that would need it are Safari, Outlook, Anyconnect, Chrome, Firefox, Lync. Basically anything needed authentication.

Thanks in advance.

You can disable AppNap per app by adding

<key>NSAppSleepDisabled</key>
<true/>

to an application's plist, either by using defaults write or a configuration profile (MCX should also work, haven't tried it though).
Here's an example profile that disables AppNap for TextWrangler at the computer level:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>PayloadContent</key>
    <array>
        <dict>
           <key>PayloadType</key>
           <string>com.barebones.textwrangler</string>
           <key>PayloadVersion</key>
           <integer>1</integer>
           <key>PayloadIdentifier</key>
           <string>com.barebones.textwrangler</string>
           <key>PayloadEnabled</key>
           <true/>
           <key>PayloadUUID</key>
           <string>C1078AF4-F253-4D8C-9683-CBCC97DC8435</string>
           <key>PayloadDisplayName</key>
           <string>Disable App Nap for TextWrangler</string>
           <key>NSAppSleepDisabled</key>
           <true/>
        </dict>
        </array>
    <key>PayloadDescription</key>
    <string>Disable App Nap for TextWrangler</string>
    <key>PayloadDisplayName</key>
    <string>Disable App Nap for TextWrangler</string>
    <key>PayloadIdentifier</key>
    <string>com.org.config.textwrangler</string>
    <key>PayloadOrganization</key>
    <string>Your Org</string>
    <key>PayloadRemovalDisallowed</key>
    <true/>
    <key>PayloadScope</key>
    <string>System</string>
    <key>PayloadType</key>
    <string>Configuration</string>
    <key>PayloadUUID</key>
    <string>B2A333EC-D455-4D70-96C8-9A5101E5761F</string>
    <key>PayloadVersion</key>
    <integer>1</integer>
</dict>
</plist>

Hi Chris,

Sorry for the late reply. Thanks for the help on this. I am probably doing this wrong, but here is what I tried with no luck so far.

defaults write com.microsoft.Excel NSAppSleepDisabled -bool false (no joy, prevent app sleep check mark still unchecked)

Casper MCX Computer Level Enforced, Value = com.microsoft.Excel NSAppSleepDisabled
Radio button = true (no joy, prevent app sleep check mark still unchecked)

ConfigProfiles i have not tried yet, as we have to deploy them manually due to Proxy. I will give it a shot though as a last resort.


defaults write com.microsoft.Excel NSAppSleepDisabled -bool false

This needs to be "true", but i guess it's just a typo ;)

It won't check the box in the Get Info dialogue,
but if you check with Activity Monitor -> "Energy" tab, it should show that the App won't "Nap".

The MCX might have to be "User Level at every Login"...


We currently are running into an issue where App Nap is preventing a monitoring program from running in the background.
Use this line in terminal to turn off App Nap completely on the workstation.

defaults write -g NSAppSleepDisabled -bool true

in our environment the driver for the interactive projector runs as an app. I've use the defaults command for other app and its worked fine, but this stupid driver/app doesn't have a plist.

any suggestions.