Prevent App Nap

jrserapio
Contributor

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.

5 REPLIES 5

Chris
Valued Contributor

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>

jrserapio
Contributor

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.

Chris
Valued Contributor
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"...

Andy_McCaskill
Contributor

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

jchurch
Contributor II

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.