Skip to main content
Question

Prevent App Nap

  • May 9, 2014
  • 5 replies
  • 53 views

Forum|alt.badge.img+7

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

Forum|alt.badge.img+13
  • Valued Contributor
  • May 12, 2014

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>

Forum|alt.badge.img+7

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.


Forum|alt.badge.img+13
  • Valued Contributor
  • May 13, 2014
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"...


Forum|alt.badge.img+5

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

Forum|alt.badge.img+7
  • Valued Contributor
  • April 23, 2015

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.