Notes
This is a pre-release version of Nudge created by GitHub Actions.
Nudge.app has been signed and notarized. The package has been signed, notarized and stapled.
By default Nudge looks for a com.github.macadmins.Nudge.json
file located in /Library/Preferences
. If you would like to use an alternative path, please read the README or the WIKI
About the LaunchAgent
This is a basic launch agent that opens Nudge twice an hour, every 30 minutes.
If you would like to reduce the amount of times Nudge launches per day, it is recommended to create your own LaunchAgent.
Changelog
Added
- Nudge "Suite" package that includes the Logger LaunchDaemon, Nudge 30 minute LaunchAgent and Nudge.app
- The Nudge application is identical to the standard package which is signed and notarized.
- The package is signed, notarized and stapled, similarly to the standard package.
- Changlog in GitHub Actions
- Blurring feature when the user is passed the required installation date.
- Many many thanks to @bartreardon for this feature!
- Blurring will dynamically enable a blur for all of the user's screens until they click on the
Update Device
button. - If the user adds or removes a screen during Nudge's current session, after the next re-activation event, the blur will dynamically modify to the new screen count.
- Danish localization
- Added basic localizations for new Notification Center UX
- Help on this would be appreciated
Arguments
-bundle-mode
argument to launch Nudge with a built-in json. Not for use in production.-print-profile-config
argument to print out the current profile preferences applied to nudge. Nudge will not run when passing this argument.-print-json-config
argument to print out the current json preferences applied to nudge. Nudge will not run when passing this argument.
Keys
acceptableApplicationBundleIDs
- 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.
- The application names using assertions which Nudge allows without taking focus. You can specify one or more applications. To find the names please run
acceptableAssertionUsage
- When enabled, Nudge will not activate or re-activate when assertions are currently set.
acceptableCameraUsage
- When enabled, Nudge will not activate or re-activate when the camera is on.
acceptableScreenSharingUsage
- When enabled, Nudge will not activate or re-activate when screen sharing is active.
aggressiveUserFullScreenExperience
- When disabled, Nudge will not create a blurred background when the user is passed the deferral window.
- defaulted to on
customDeferralDropdownText
- This allows you to custom the "Defer" button.
attemptToBlockApplicationLaunches
- When enabled, Nudge will attempt to block application launches after the required installation date. This key must be used in conjunction with
blockedApplicationBundleIDs
.
- When enabled, Nudge will attempt to block application launches after the required installation date. This key must be used in conjunction with
blockedApplicationBundleIDs
- The application Bundle ID which Nudge disallows from lauching after the required installation date. You can specify one or more Bundle ID.
terminateApplicationsOnLaunch
- When enabled, Nudge will terminate the applications listed in blockedApplicationBundleIDs upon initial launch.
Please note that with these three options, the user will be notified through Notification Center, but only if they approve the dialog. It is recommended to deploy an MDM profile for this to force user notifications, otherwise Nudge will ask the user upon the next launch to allow notifications.
Changed
- If a full screen application is already running prior to Nudge's initial launch and the user has not passed the required installation date, Nudge will wait until the user has moved to another application or change the full screen state of the current application before triggering it's first activation. This is due to poor behavior with full screen applications.
- CMD+N and CMD+M are now banned if Nudge is the primary window on a macOS device
- Nudge no longer exits 0 when there are issues it detects and instead exits 1
- Refactored all log logic to reduce lines of code
- Nudge will submit anonymous metrics about it's configuration
Fixed
- Improved Dutch localization
- Improved Norwegian localization
- Fixes the bug around people moving Nudge to a different desktop space and bypassing nudge event
- Fixes to non-Gregorian calendars and custom deferrals
Changes
- effa383 - Create a blurred background that can be displayed on request (demonstration code)
- 125cfaf - super nag - make nudge and the blurred window persist across all virtual desktops
- f1e6457 - add storyboard to xcodeproj
- f49fe10 - make blur screen false by default - needs more work to make it prod worthy
- 463a9d1 - Make the background an observed object Call
viewObserved.bluredBackground?.close()
when clicking the "update device" button. this will make the background blur go away so the user can see the update window - 404fc26 - duplicated reference to the background storyboard
- fa0d6df - renamed Blur storyboard to baclgroundBlur
- 18339fa - Removed storyboard and replaced as NSWindow declaration
- eb3edcf - Merge branch 'development' into background-blur
- af87ab1 - Merge branch 'development' into background-blur
- a19b1e6 - Merge pull request #335 from macadmins/development
- 44cb06e - Added N and M as banned keys. banning N prevents new window which is innocuous but not useful in any case. banning M prevents Nudge from being minimised perpetually and thus not being "in the way".
- 243a5a7 - Merge pull request #351 from bartreardon/more-banned-shortcut-keys
- 37d2cb9 - improve Norwegian localization
- f6c69db - Add Danish localization
- 5487cd8 - disable ability to move nudge to different desktop spaces
- 3eb3666 - add acceptableCameraUsage and cameraReferralTime code logic
- ddacdd7 - acceptableCameraUsage should be false default
- 1460619 - Merge branch 'development' into background-blur
- 15f5951 - Merge pull request #316 from bartreardon/background-blur
- d793f46 - Finish out the blurred background v1 code and fix some bugs
- 1ff01d1 - Ensure blur is always loaded on re-activations
- 9ea240e - Attempt to fix deferral date when ui is open for a while
- 906b810 - Merge pull request #355 from macadmins/dev-blur
- 134b258 - add cameraReferralTime to preferences
- 5cba117 - remove fullscreen debug test code
- 45b5018 - fix bugs with blur logic and create test workflow
- 35d9009 - fix custom buttons and add support for shell and zsh scripts
- 05aa105 - add -print-profile-config and -print-json-config arguments
- 3af0d7a - add ability to block applications
- a3074ed - bump to 1.1.7
- e688c47 - Added German User Notification
- a53ea4d - Merge pull request #357 from colorenz/development
- 108584c - block applications when attemptToBlockApplicationLaunches is true
- 6148277 - do not block apps without bundle identifiers
- f79bb3c - print out the frontmost application
- 01803b7 - Google translate user notification localizations
- 18e969b - update jamf json schema and example json/profile
- ebb2e67 - fix json schema
- 066d2b1 - dont get in the way of full screen apps
- ffa1d22 - some small tweaks about observability
- 7f5a915 - figured out how to do screen sharing usage
- 6b372b2 - small tweaks to the logger and softwareupdate code
- 2ff2e9a - get rid of all let = msg variables and tweak log outputs
- 3667ea2 - allow camera and screen sharing when not pastRequiredInstallationDate
- a34540f - Attempt to fix the non Gregorian calendar issues
- f5489a7 - fix -print-profile-config
- ca2e913 - Refactor needToActivateNudge() from all the additions
- 3f0cee5 - add logs around screen sharing and camera
- d1d8414 - more tweaks to logging and order of nudge activations
- ec6323f - dont set deferral time in demo mode
- 068f1b3 - dont guard on notification name as not needed
- afb9741 - Add acceptableAssertionUsage and acceptableAssertionApplicationNames logic
- ed027b1 - initial DND config instead of log stream
- a0bdd7b - move isScreenSharing logic to DNDServer private framework
- 2ba89cb - refactor camera logic and remove logReferralTime
- 4e27899 - add more notes on how I found this
- 43da836 - change defer text for dutch
- 3cf5cf8 - try to sign and notarize a new suite package
- f0161b1 - add to all of the github actions
- 7e24d65 - cp -R not mv
- c106cb6 - add terminateApplicationsOnLaunch
- 6d512e3 - fix jamf json schema
- bbaef0f - try to create a manual changelog that gets added to github actions
- 5f9f764 - fix duplicated GHA id
- e3b301e - send github env variable not a literalstring variable
- 7d3eb1f - try and fix variable again
- e50e186 - try a whole different type of changelog
- 6d88293 - workaround for fullscreen bug and blur
- 96fbb98 - clarify changelog
- 60113eb - remove un-needed logic post full screen behavior changes
- 1e5e1a6 - don't hide the majorUpgradeBackupApp if it's not frontmost
- 87a1286 - update changelog with fullscreen behavior changes
- dc4d51c - create an easter egg <3
- 993cda3 - Add customDeferralDropdownText customizations
- fbb0d5b - redo -print-x-config
- 1a13f7f - finish deviceconfig logic
- 14ee529 - update to prod url
- 5391941 - update changelog