userInterface - macadmins/nudge GitHub Wiki

actionButtonPath - Type: String, Default Value: nil

v1.1.0 and higher only

A path to a URI for opening alternative actions, like Jamf Self Service items or Munki Self Service items.

  • When using this key, you will lose the dynamic capability for updateDevice supporting minor / major upgrades, so it will be up to your separate tool to handle this logic.

Do not pass an empty string with this key or you will get the following error in the nudge logs

actionButtonPath contains empty string - actionButton will be unable to trigger any action required for major upgrades

NOTE: As of 1.1.6 (Mar 15, 2022) actionButtonPath should be configured under osVersionRequirements

fallbackLanguage - Type: String, Default Value: "en"

The language to revert to if no localizations are available for the device's current language.

forceFallbackLanguage - Type: Boolean, Default Value: False

Force the custom localizations to the value of fallbackLanguage.

forceScreenShotIcon - Type: Boolean, Default Value: False

Force the built-in ScreenShot icon to render in the UI if a ScreenShot path is not passed.

iconDarkPath - Type: String, Default Value: ""

A path to a local jpg, png, icns that contains the icon for dark mode. This will replace the Apple logo on the left side of Nudge.

In Nudge v1.1.12.81495 and higher you can use base64 strings for iconDarkPath

Some MDMs have issues deplyoying larger mdm profiles > 1MB, so please run your pngs through https://tinypng.com/ to compress them Run base64 cli and convert to a string base64 -b 100000000 < ~Downloads/tinified/screenShotDark.png | pbcopy Added them to your management file and prefixed the base64 encoded string with data:image/png;base64, Ensure there is no extra lines on the preferences

iconLightPath - Type: String, Default Value: ""

A path to a local jpg, png, icns that contains the icon for light mode. This will replace the Apple logo on the left side of Nudge.

In Nudge v1.1.12.81495 and higher you can use base64 strings for iconLightPath

Some MDMs have issues deplyoying larger mdm profiles > 1MB, so please run your pngs through https://tinypng.com/ to compress them Run base64 cli and convert to a string base64 -b 100000000 < ~Downloads/tinified/screenShotDark.png | pbcopy Added them to your management file and prefixed the base64 encoded string with data:image/png;base64, Ensure there is no extra lines on the preferences

screenShotDarkPath - Type: String, Default Value: ""

A path to a local jpg, png, icns that contains the screen shot for dark mode. This will replace the Big Sur logo on the lower right side of Nudge. For example, you may want to show different images for Big Sur and Monterey:

BS-Update-Dark Monterey-Nudge-Dark

In Nudge v1.1.12.81495 and higher you can use base64 strings for screenShotDarkPath

Some MDMs have issues deplyoying larger mdm profiles > 1MB, so please run your pngs through https://tinypng.com/ to compress them Run base64 cli and convert to a string base64 -b 100000000 < ~Downloads/tinified/screenShotDark.png | pbcopy Added them to your management file and prefixed the base64 encoded string with data:image/png;base64, Ensure there is no extra lines on the preferences

screenShotLightPath - Type: String, Default Value: ""

A path to a local jpg, png, icns that contains the screen shot for light mode. This will replace the Big Sur logo on the lower right side of Nudge. For example, you may want to show different images for Big Sur and Monterey:

BigSur-Nudge-Light Monterey-Nudge-Light

In Nudge v1.1.12.81495 and higher you can use base64 strings for screenShotLightPath

Some MDMs have issues deplyoying larger mdm profiles > 1MB, so please run your pngs through https://tinypng.com/ to compress them Run base64 cli and convert to a string base64 -b 100000000 < ~Downloads/tinified/screenShotDark.png | pbcopy Added them to your management file and prefixed the base64 encoded string with data:image/png;base64, Ensure there is no extra lines on the preferences

showDeferralCount - Type: Boolean, Default Value: True

v1.1.0 and higher only Enables the deferral count in simpleMode and standardMode. Defaults to true to maintain v1.0 compatibility.

Note: While you can disable the deferral count, the deferral count behavior logic will still apply. This may confuse your users. Be mindful of disabling this setting.

simpleMode - Type: Boolean, Default Value: False

Enables Nudge to launch in the simplified user experience

singleQuitButton - Type: Boolean, Default Value: False

Only display one quit button regardless of proximity to the due date

updateElements - Type: Array, Default Value: []

A list of dictionaries, enabling further customization to the Nudge UI. Please see the updateElements wiki article for more information.

Example (JSON)

{
  "userInterface": {
    "actionButtonPath": "munki://updates",
    "fallbackLanguage": "en",
    "forceFallbackLanguage": false,
    "forceScreenShotIcon": false,
    "iconDarkPath": "/somewhere/logoDark.png",
    "iconLightPath": "/somewhere/logoLight.png",
    "screenShotDarkPath": "/somewhere/screenShotDark.png",
    "screenShotLightPath": "/somewhere/screenShotLight.png",
    "showDeferralCount": true,
    "simpleMode": false,
    "singleQuitButton": false,
    "updateElements": []
  }
}

Example (Mobile Configuration)

<?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>PayloadDescription</key>
        <string>Configures userInterface preferences</string>
        <key>PayloadDisplayName</key>
        <string>Nudge Preferences</string>
        <key>PayloadIdentifier</key>
        <string>com.github.macadmins.Nudge.preferences.example.userInterface</string>
        <key>PayloadOrganization</key>
        <string></string>
        <key>PayloadType</key>
        <string>com.github.macadmins.Nudge</string>
        <key>PayloadUUID</key>
        <string>CA02957C-7472-446B-9F77-3E0414405556</string>
        <key>PayloadVersion</key>
        <integer>1</integer>
        <key>userInterface</key>
        <dict>
          <key>actionButtonPath</key>
          <string>munki://updates</key>
          <key>fallbackLanguage</key>
          <string>en</string>
          <key>forceFallbackLanguage</key>
          <false/>
          <key>forceScreenShotIcon</key>
          <false/>
          <key>iconDarkPath</key>
          <string>/somewhere/logoDark.png</string>
          <key>iconLightPath</key>
          <string>/somewhere/logoLight.png</string>
          <key>screenShotDarkPath</key>
          <string>/somewhere/screenShotDark.png</string>
          <key>screenShotLightPath</key>
          <string>/somewhere/screenShotLight.png</string>
          <key>showDeferralCount</key>
          <true/>
          <key>simpleMode</key>
          <false/>
          <key>singleQuitButton</key>
          <false/>
          <key>updateElements</key>
          <array/>
      </dict>
    </array>
    <key>PayloadDescription</key>
    <string>Configures Nudge application</string>
    <key>PayloadDisplayName</key>
    <string>Nudge</string>
    <key>PayloadIdentifier</key>
    <string>com.github.macadmins.Nudge.example.userInterface</string>
    <key>PayloadOrganization</key>
    <string>Nudge</string>
    <key>PayloadScope</key>
    <string>System</string>
    <key>PayloadType</key>
    <string>Configuration</string>
    <key>PayloadUUID</key>
    <string>2F54F734-132D-4539-B583-F1DCF23DB5EB</string>
    <key>PayloadVersion</key>
    <integer>1</integer>
  </dict>
</plist>
⚠️ **GitHub.com Fallback** ⚠️