userInterface - macadmins/nudge GitHub Wiki

User Interface

Preferences

actionButtonPath

  • Type: String
  • Default Value: ""
  • Required: No
  • Version: v1.1.0 and later

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

Note: 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.

Note: 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


applicationTerminatedNotificationImagePath

  • Type: String
  • Default Value: ""
  • Required: No
  • Version: v2.0 and later

A local image path for the notification event when Nudge terminates and application.


fallbackLanguage

  • Type: String
  • Default Value: en
  • Required: No
  • Version: v.1.1.0 and later

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


forceFallbackLanguage

  • Type: Boolean
  • Default Value: False
  • Required: No
  • Version: v1.1.0 and later

Force the custom localizations to the value of fallbackLanguage.


forceScreenShotIcon

  • Type: Boolean
  • Default Value: False
  • Required: No
  • Version: v1.1.0 and later

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


iconDarkPath

  • Type: String
  • Default Value: ""
  • Required: No
  • Version: v1.1.0 and later

A URI to a remote or local jpg, png, icns file 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 deploying MDM profiles greater than 1MB, so please run your pngs through https://tinypng.com/ to compress them.

Run base64 and convert to a string base64 -b 100000000 < ~Downloads/tinified/screenShotDark.png | pbcopy

Prefix the base64 encoded string with data:image/png;base64, and add it to your management file.

Ensure there are no extra lines in the preferences.


iconLightPath

  • Type: String
  • Default Value: ""
  • Required: No
  • Version: v1.1.0 and later

A URI to a remote or local jpg, png, icns file 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 deploying MDM profiles greater than 1MB, so please run your pngs through https://tinypng.com/ to compress them.

Run base64 and convert to a string base64 -b 100000000 < ~Downloads/tinified/screenShotDark.png | pbcopy

Prefix the base64 encoded string with data:image/png;base64, and add it to your management file.

Ensure there are no extra lines in the preferences.


requiredInstallationDisplayFormat

  • Type: String
  • Default Value: ""
  • Required: No
  • Version: v2.0 and later

When utilizing showRequiredDate, set a custom display format; for example, MM/dd/yyyy. Be aware that the format you desire may not look good on the UI.

For examples of valid date format strings, see this cheatsheet.


screenShotDarkPath

  • Type: String
  • Default Value: ""
  • Required: No
  • Version: v1.1.0 and later

A URI to a remote or local jpg, png, icns file 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 deploying MDM profiles greater than 1MB, so please run your pngs through https://tinypng.com/ to compress them.

Run base64 and convert to a string base64 -b 100000000 < ~Downloads/tinified/screenShotDark.png | pbcopy

Prefix the base64 encoded string with data:image/png;base64, and add it to your management file.

Ensure there are no extra lines in the preferences.


screenShotLightPath

  • Type: String
  • Default Value: ""
  • Required: No
  • Version: v1.1.0 and later

A URI to a remote or local jpg, png, icns file 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 deploying MDM profiles greater than 1MB, so please run your pngs through https://tinypng.com/ to compress them.

Run base64 and convert to a string base64 -b 100000000 < ~Downloads/tinified/screenShotDark.png | pbcopy

Prefix the base64 encoded string with data:image/png;base64, and add it to your management file.

Ensure there are no extra lines in the preferences.


showActivelyExploitedCVEs

  • Type: Boolean
  • Default Value: True
  • Required: No
  • Version: v2.0 and later

When disabled, Nudge will not show the Actively Exploited CVEs in the left sidebar.


showDeferralCount

  • Type: Boolean
  • Default Value: True
  • Required: No
  • Version: v1.1.0 and later

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.


showDaysRemainingToUpdate

  • Type: Boolean
  • Default Value: True
  • Required: No
  • Version: v2.0 and later

When disabled, Nudge will not show the Days Remaining To Update: item on the left side of the UI.


showRequiredDate

  • Type: Boolean
  • Default Value: False
  • Required: No
  • Version: v2.0 and later

When enabled, Nudge will also show the requiredInstallationDate as string formatted date.


simpleMode

  • Type: Boolean
  • Default Value: False
  • Required: No
  • Version: v1.1.0 and later

Enables Nudge to launch in the simplified user experience.


singleQuitButton

  • Type: Boolean
  • Default Value: False
  • Required: No
  • Version: v1.1.0 and later

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


updateElements

  • Type: Array
  • Default Value: []
  • Required: No
  • Version: v2.0 and later

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


Examples

Example Configuration - JSON

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

Example Configuration - Mobile

<?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>https://somewhere/dir/logoLight.png</string>
          <key>screenShotDarkPath</key>
          <string>/somewhere/screenShotDark.png</string>
          <key>screenShotLightPath</key>
          <string>https://somewhere/dir/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** ⚠️