3 votos

Ejecutar un script con acceso a la GUI antes de iniciar la sesión

Necesito ejecutar una herramienta de línea de comandos para forzar el brillo máximo de la pantalla antes de que el usuario inicie la sesión (para que la pantalla de inicio de sesión se muestre con el brillo máximo)

Mi problema es que si lo ejecuto desde LaunchDaemons No funciona. Creo que es porque desde LaunchDaemons no puede ejecutar nada que interactúe con el Servidor de Windows.

Si lo ejecuto desde LaunchAgents funciona. Pero se ejecuta después del inicio de sesión, por lo que no es una opción.

¿Existe alguna alternativa a LaunchDaemons para ejecutar scripts o programas que permitan el acceso a WindowServer?

0 votos

¿Necesita ejecutar una herramienta de brillo específica o funcionará una herramienta de brillo de pantalla general de Mac? Consulte brillo de la pantalla de mac en GitHub.

6voto

Steve Evans Puntos 155

PreLoginAgents

MacOS admite la posibilidad de ejecutar aplicaciones gráficas antes del inicio de sesión:

Ejecución de agentes antes del inicio de sesión

La mayoría de los programas que muestran una interfaz de usuario no se ejecutan antes de que el usuario inicie la sesión. Sin embargo, en algunos casos raros, puede ser necesario crear un agente gráfico que lo haga.

Por defecto, OS X no permite que ninguna aplicación dibuje el contenido antes de iniciar la sesión. Si necesita hacerlo, su agente debe llamar a la función setCanBecomeVisibleWithoutLogin: en su Windows. Para más información, consulte la documentación de ese método y el PreLoginAgents código de muestra.

El truco es añadir las siguientes líneas a su /Library/LaunchAgents launchd plist:

<key>LimitLoadToSessionType</key>
<string>LoginWindow</string>

El ejecutable debe almacenarse en /Library/PrivilegedHelperTools .

Utilizamos esta capacidad para mostrar una ventana de notificación previa al inicio de sesión para Gestor de energía eventos pendientes.

Es posible que esta funcionalidad no sea compatible con el último MacOS; hace tiempo que no confiamos en ella.

1 votos

¡¡¡¡Funciona !!!! He seguido el ejemplo de codificación en el enlace que has proporcionado y me faltaban 2 cosas: 1) PLIST en LaunchAgents vs LaunchDaemons, y 2) ejecutable en /Library/PrivilegedHelperTools .

1 votos

Me alegra saber que lo tienes funcionando. He actualizado la respuesta para mencionar las carpetas LaunchAgents y helper tools.

AppleAyuda.com

AppleAyuda es una comunidad de usuarios de los productos de Apple en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X