Notify Screen
Jamf Connect can include a notify screen that can display a progress bar, customized text, and images during Automated Device Enrollment (formerly DEP). The notify screen is configured by a script that writes commands to a control file.This script can then be specified with the Script Path setting.
Note: The RunScript mechanism must also be enabled with the authchanger tool. For more information, see Login Scripts.
Enabling and Configuring the Notify Screen
Complete the following steps to configure the notify screen:
-
Add the notify mechanism to the loginwindow application by executing the following command:
/usr/local/bin/authchanger -reset -JamfConnect -preAuth JamfConnectLogin:RunScript,privileged JamfConnectLogin:Notify
-
Create a notify script.
The notify script writes echo commands to a control file. The control file is stored at the following file path: /var/tmp/depnotify.log
The following script is an example:#!/bin/bash
#variables
NOTIFY_LOG="/var/tmp/depnotify.log"
GIVEN_NAME=Archie echo "STARTING RUN" >> $NOTIFY_LOG # Define the number of increments for the progress bar
echo "Command: Determinate: 6" >> $NOTIFY_LOG#1 - Introduction window with username and animation
echo "Command: Image: /System/Library/CoreServices/CoreTypes.bundle/Contents/Resources/com.apple.macbookpro-15-retina-touchid-silver.icns" >> $NOTIFY_LOG
echo "Command: MainTitle: Welcome, $GIVEN_NAME" >> $NOTIFY_LOG
echo "Command: MainText: Your Mac is now managed and will be automatically configured for you." >> $NOTIFY_LOG
echo "Status: Preparing your new Mac..." >> $NOTIFY_LOG
sleep 10#2 - Setting up single sign-on passwords for local account
echo "Command: Image: /Applications/Utilities/Keychain Access.app/Contents/Resources/AppIcon.icns" >> $NOTIFY_LOG
echo "Command: MainTitle: Tired of remembering multiple passwords? \n $GIVEN_NAME " >> $NOTIFY_LOG
echo "Command: MainText: We use single sign-on services to help you log in to each of our corporate services.
You can use your email address and account password to sign into all necessary applications." >> $NOTIFY_LOG
echo "Status: Setting the account password for your Mac to sync with your network password..." >> $NOTIFY_LOG
sleep 10#3 - Self Service makes the Mac life easier
echo "Command: Image: /Applications/Self Service.app/Contents/Resources/AppIcon.icns" >> $NOTIFY_LOG
echo "Command: MainTitle: Self Service makes the Mac life easier" >> $NOTIFY_LOG
echo "Command: MainText: Self Service includes helpful bookmarks and installers for other applications that may interest you." >> $NOTIFY_LOG
echo "Status: Installing Jamf Self Service..." >> $NOTIFY_LOG
sleep 10#4 - Everything you need for your first day
###Jamf Triggers
echo "Command: Image: /System/Library/CoreServices/Install in Progress.app/Contents/Resources/Installer.icns" >> $NOTIFY_LOG
echo "Command: MainTitle: Installing everything you need for your first day." >> $NOTIFY_LOG
echo "Command: MainText: All the apps you'll need today are already being installed. Once we're ready to start, you'll find Microsoft Office, Slack, and Zoom are all ready to go.
Launch apps from the dock and have fun!" >> $NOTIFY_LOG
echo "Status: Installing Microsoft Office..." >> $NOTIFY_LOG
/usr/local/bin/jamf policy -event "InstallOffice"
sleep 5#5 - Finishing up
echo "Command: Image: /System/Library/CoreServices/CoreTypes.bundle/Contents/Resources/ApplicationsFolderIcon.icns" >> $NOTIFY_LOG
echo "Status: Installing Slack..." >> $NOTIFY_LOG
/usr/local/bin/jamf policy -event "InstallSlack"
sleep 5 echo "Status: Finishing up... \n We're almost ready for you, $GIVEN_NAME" >> $NOTIFY_LOG
sleep 5 ###Clean Up
sleep 3 echo "Command: Quit" >> $NOTIFY_LOG
sleep 1 rm -rf $NOTIFY_LOG#6 - Disable notify screen from loginwindow processusr/local/bin/authchanger -reset -JamfConnect
-
Use your preferred configuration method to specify the file path to your script with the Script Path (RunScript) setting.
For more information, see Configuring Settings for Jamf Connect.
Notify Script Commands
The following commands can be used to display the notify screen.
General Commands
Command |
Description |
Image: |
This command replaces the default notify image with an image at a specified path. The image will automatically scale to the correct size. Example: Command: Image: /tmp/logo.png |
MainText: |
This command changes the main text displayed to users. Example: Command: MainText: Please wait while your new MacBook Pro is being set up. |
MainTextImage: |
This command replaces the main text with a custom icon at a specified path. Images can be up to 660 x 105 pixels and scale proportionally to fit Example: Command: MainTextImage: /tmp/logo.png |
MainTitle: |
This command changes the main title displayed to users. Example: Command: MainTitle: Welcome to yournew MacBook Pro! |
Interactive Commands
Interactive commands are used to customize the user interaction during the notify process.
Command |
Description |
Determinate: |
This command sets the the progress bar to be "determinate", progress in steps, instead of displaying a spinning bar. You must specify the number of steps you want to use during the notify process. Once set, every status update in your script will increment the bar by one stage. Example: Command: Determinate: 5 |
DeterminateManual: |
This command sets the progress bar to be determinate and progress manually rather than with stage commands. You must specify the number of steps you want during the notify process. Once set, you must manually progress the status bar using the DeterminateManualStep: command. Example: Command: DeterminateManual: 5 |
DeterminateManualStep: |
When in DeterminateManual: mode, this command will advance the progress bar by one step or a specified interval. The example below moves the progress bar by two steps. Example: Command: DeterminateManualStep: 2 |
DeterminateOff: |
This command disables the determinate state for the progress bar. Steps that already occurred remain completed in the progress bar. This allows you to move between a determinate state and non-determinate state without losing your progress. Example: Command: DeterminateOff: |
DeterminateOffReset: |
After turning off the determinate state of the progress bar, you must reset it to zero. Example: Command: DeterminateOffReset: |
Quit |
This command quits the notify process. Example: Command: Quit Note: A colon is not used with this command. You can also specify a message to display to users. Example: Command: Quit: Thanks for using this app. |
Notify Status Updates
You can use echo Status: to update users on the notify process. The following is an example of a status update:
echo Status: Installing Jamf >>/var/tmp/depnotify.log
Note: If the Determinate: command is used, the progress bar increments with each status update.
You can also configure the notify screen to read and display policy logs from Jamf Pro to users instead by configuring the Notify Screen Log Style (NotifyLogStyle) setting to "jamf".
End User Experience
The following screen display an expected end user experience when the notify screen is enabled during Automated Device Enrollment:
-
Introduction window with username and animation
-
Setting up single sign-on passwords for local account
-
Self Service makes the Mac life easier
-
Installing everything you need for your first day
-
Finish up
Related Information
For related information about packaging Jamf Connect, see the Customizing the Jamf Connect Login package with Composer Knowledge Base article.
For related information about deploying Jamf Connect settings, see Deployment.