Execute a script with GUI Access before login
PreLoginAgents
macOS supports the ability to run graphical applications pre-login:
Running Agents Before Login
Most software that displays a user interface does not run prior to the user logging in. However, in some rare cases, it may be necessary to create a graphical agent that does.
By default, OS X does not allow any application to draw content prior to login. If you need to do so, your agent must call the
setCanBecomeVisibleWithoutLogin:
method on its windows. For more information, see the documentation for that method and the PreLoginAgents sample code.
The trick is to add the following lines to your /Library/LaunchAgents launchd plist:
<key>LimitLoadToSessionType</key>
<string>LoginWindow</string>
The executable must be stored in /Library/PrivilegedHelperTools
.
We used this ability to show a notification window pre-login for Power Manager pending events.
This functionality may not be supported in the latest macOS; we have not relied on it for a long while.