OptionalFeatures - Miyu-dev/nudge GitHub Wiki
acceptableApplicationBundleIDsacceptableAssertionUsageacceptableAssertionApplicationNamesacceptableCameraUsageacceptableScreenSharingUsageaggressiveUserExperienceaggressiveUserFullScreenExperienceasyncronousSoftwareUpdateasynchronousSoftwareUpdateattemptToFetchMajorUpgradeattemptToBlockApplicationLaunchesblockedApplicationBundleIDsdisableSoftwareUpdateWorkflowenforceMinorUpdatesterminateApplicationsOnLaunch- Examples
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
acceptableApplicationsListwhen Nudge is running in debug mode.
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.
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.usMeeting Center
Requires acceptableAssertionUsage to be enabled.
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.
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.
v1.1.0 and later
When disabled, Nudge will not hide all non-acceptableApplicationBundleIDs after the requiredInstallationDate or allowedDeferrals.
v1.1.7 and later
When disabled, Nudge will not create a blurred background when the computer is passed the deferral window.
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
v1.1.4 and later
When disabled, Nudge will wait for Software Update to finish downloading (if any) updates before showing its UI.
v1.1.4 and later
When disabled, Nudge will not attempt to download a major upgrade application via softwareupdate.
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.
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 this would be:
us.zoom.xoscom.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.
v1.1.5 and later
When enabled, Nudge will not attempt to download a minor update via softwareupdate.
See also: majorUpgradeAppPath
When enabled, Nudge will enforce minor updates. This should likely never be disabled.
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.
{
"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>