optionalFeatures - macadmins/nudge GitHub Wiki
-
Preferences
acceptableApplicationBundleIDs
acceptableAssertionApplicationNames
acceptableAssertionUsage
acceptableCameraUsage
acceptableUpdatePreparingUsage
acceptableScreenSharingUsage
aggressiveUserExperience
aggressiveUserFullScreenExperience
asyncronousSoftwareUpdate
(Deprecated)asynchronousSoftwareUpdate
attemptToBlockApplicationLaunches
attemptToCheckForSupportedDevice
attemptToFetchMajorUpgrade
blockedApplicationBundleIDs
customSOFAFeedURL
disableNudgeForStandardInstalls
disableSoftwareUpdateWorkflow
enforceMinorUpdates
honorFocusModes
refreshSOFAFeedTime
terminateApplicationsOnLaunch
utilizeSOFAFeed
- Examples
- Type: Array
- Default Value: []
- Required: No
- Version: v1.1.7 and later
The application Bundle ID which Nudge allows without taking focus. (You can specify one or more Bundle ID.)
Disables Nudge's re-activation logic for the listed applications. If one of the specified applications is foremost, Nudge will not reactivate itself. (This feature does not work for Nudge's initial activation.)
- Xcode is forced added to the
acceptableApplicationsList
when Nudge is running in debug mode.
- Type: Array
- Default Value:
- Required: No
- Version: v1.1.7 and later
The application names using assertions which Nudge allows without taking focus. You can specify one or more applications. To find the names please run /usr/bin/pmset -g assertions
in Terminal while the application is open and running.
For example this would be:
zoom.us
Meeting Center
Requires acceptableAssertionUsage
to be enabled.
- Type: Boolean
- Default Value: False
- Required: No
- Version: v1.1.7 and later
When enabled, Nudge will not activate or re-activate when assertions are currently set by an application specified in acceptableAssertionApplicationNames
.
Assertions, an Apple term, can be set by applications to request macOS disable things like display or system sleep. Some example can be found here: Apple Developer: IOPMAssertionTypes
Written as a potential mitigation for applications that are not detected by acceptableCameraUsage
and acceptableScreenSharingUsage
.
- Type: Boolean
- Default Value: False
- Required: No
- Version: v1.1.7 and later
When enabled, Nudge will not activate or re-activate when the camera is on.
Note: acceptableCameraUsage
will be ignored by Nudge when the host computer has passed the required installation date.
- Type: Boolean
- Default Value: True
- Required: No
- Version: v2.0 and later
When enabled, Nudge will not activate or re-activate when an update is being downloaded, prepared or staged.
Note: Nudge can now bypass activations and re-activations when a macOS update is Downloading
, Preparing
or Staged
for installation. To disable this functionality, set this preference to 'false'.
- Type: Boolean
- Default Value: False
- Required: No
- Version: v1.1.7 and later
When enabled, Nudge will not activate or re-activate when screen sharing is active.
Note: acceptableScreenSharingUsage
will be ignored by Nudge when the host computer has passed the required installation date.
- Type: Boolean
- Default Value: True
- Required: No
- Version: v1.1.0 and later
When disabled, Nudge will not hide all applications not defined in acceptableApplicationBundleIDs
after the requiredInstallationDate
or allowedDeferrals
.
- Type: Boolean
- Default Value: True
- Required: No
- Version: v1.1.7
When disabled, Nudge will not create a blurred background when the computer is passed the deferral window.
- Type: Boolean
- Default Value: True
- Required: No
- Version: v1.1.3 and earlier
When disabled, Nudge will wait for Software Update to finish downloading (if any) updates before showing its UI.
Deprecated for
asynchronousSoftwareUpdate
- Type: Boolean
- Default Value: True
- Required: No
- Version: v1.1.4 and later
When disabled, Nudge will wait for Software Update to finish downloading (if any) updates before showing its UI.
- Type: Boolean
- Default Value: False
- Required: No
- Version: v1.1.7 and later
When enabled, Nudge will attempt to block application launches after the required installation date.
This key must be used in conjunction with blockedApplicationBundleIDs
.
A Notification Profile should be implemented so the user can see why the application is closed.
- Type:
- Default Value:
- Required:
- Version: v2.0 and later
When disabled, Nudge will no longer compare the current device against the SOFA feed for the required update. If the device cannot install this update, Nudge will not present the Unsupported UI."
- Type: Boolean
- Default Value: True
- Required: No
- Version: v1.1.4
When disabled, Nudge will not attempt to download a major upgrade application via softwareupdate
.
- Type: Array
- Default Value: []
- Required: No
- Version: v1.1.7 and later
The application Bundle ID which Nudge blocks from launching after the required installation date. You can specify one or more Bundle ID.
For example, to block Zoom and Word:
us.zoom.xos
com.microsoft.Word
Note: Do not try to block com.apple.finder
in conjunction with terminateApplicationsOnLaunch
as launchd will immediately try relaunch it causing loopy behaviour.
- Type: String
- Default Value: []
- Required: No
- Version: v2.0 and later
A URL path to use a custom SOFA feed.
- Type: Boolean
- Default Value: False
- Required: No
- Version: v2.0 and later
When utilizing a SOFA feed and disableNudgeForStandardInstalls is true, Nudge will only enforce updates with published CVEs.
- Type: Bool
- Default Value: False
- Required: No
- Version: v1.1.5 and later
When enabled, Nudge will not attempt to download a minor update via softwareupdate
.
See also: majorUpgradeAppPath
- Type: Boolean
- Default Value: True
- Required: No
- Version: v1.1.0 and later
When enabled, Nudge will enforce minor updates. This should likely never be disabled.
- Type: Boolean
- Default Value: False
- Required: No
- Version: v2.0 and later
When enabled, Nudge will not activate or re-activate when a user is in DoNotDisturb/Focus status. This feature is expiremental and may not work in all user settings.
- Type: Integer
- Default Value: 86400
- Required: No
- Version: v2.0 and later
The maximum age the cached SOFA feed file can be on disk. When this file age expires, Nudge will re-assess the SOFA feed for updates. Please be mindful of changing this value as there is an associated cost for maintaining the SOFA service.
- Type: Boolean
- Default Value: False
- Required: No
- Version: v1.1.7 and later
When enabled, Nudge will terminate the applications listed in blockedApplicationBundleIDs
upon initial launch.
A Notification Profile should be implemented so the user can see why the application is closed.
- Type: Boolean
- Default Value: True
- Required: No
- Version: v2.0 and later
When enabled, Nudge will utilize the SOFA feed url for update data.
{
"optionalFeatures": {
"acceptableAssertionApplicationNames": [
"zoom.us",
"Meeting Center",
"Google Chrome",
"Safari"
],
"acceptableAssertionUsage": true,
"acceptableApplicationBundleIDs": [
"us.zoom.xos",
"com.cisco.webexmeetingsapp"
],
"asynchronousSoftwareUpdate": true,
"attemptToFetchMajorUpgrade": true,
"enforceMinorUpdates": true
},
}
<?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 optionalFeatures preferences</string>
<key>PayloadDisplayName</key>
<string>Nudge Preferences</string>
<key>PayloadIdentifier</key>
<string>com.github.macadmins.Nudge.preferences.example.optionalFeatures</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>optionalFeatures</key>
<dict>
<key>acceptableApplicationBundleIDs</key>
<array>
<string>us.zoom.xos</string>
</array>
<key>asynchronousSoftwareUpdate</key>
<true/>
<key>attemptToFetchMajorUpgrade</key>
<true/>
<key>enforceMinorUpdates</key>
<true/>
</dict>
</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.optionalFeatures</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>