10 votos

¿Cómo controlar el orden de los elementos de inicio de sesión para los usuarios en el inicio de sesión?

He visto algunas aplicaciones con revisiones mixtas que permiten al usuario cambiar el orden de los elementos de inicio. Simplemente preferiría el método "bare metal" y seguir usando el shell o el editor del Open Directory / netinfo para hacer esto. Me doy cuenta de que esto no se controla a través de launchd Entonces, ¿cuál es el mecanismo y dónde está la ubicación preferida para la definición de inicio de la aplicación?

He descubierto que el proceso de restauración de aplicaciones/ventanas de OS X es menos que mediocre y necesito garantizar que ciertas aplicaciones se inicien antes que otras (como ScreenRecycler, ya que necesito que las aplicaciones se abran en la otra pantalla cuando se encienden).

4voto

Si utilizas un shell script para abrir aplicaciones, intenta algo como esto:

osascript -e 'launch app "ScreenRecycler"'
pgrep -qx Alfred||open -jga Alfred
sleep 10
pgrep -qx Mail||open -jga Mail
pgrep -qx Transmission||open -jga Transmission

Puedes ejecutar el script en el inicio de sesión, por ejemplo, guardando la lista de abajo como ~/Library/LaunchAgents/some.label.plist .

<?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>Label</key>
  <string>some.label</string>
  <key>ProgramArguments</key>
  <array>
    <string>bash</string>
    <string>-c</string>
    <string>osascript -e 'launch app "ScreenRecycler"'
pgrep -qx Alfred||open -jga Alfred
sleep 10
pgrep -qx Mail||open -jga Mail
pgrep -qx Transmission||open -jga Transmission</string>
  </array>
  <key>RunAtLoad</key>
  <true/>
</dict>
</plist>

osascript -e 'launch app "AppName" y osascript -e 'activate app "AppName" están bloqueados hasta que la aplicación termine de abrirse. launch no es una aplicación de primera línea, pero activate lo hace. Si una aplicación como TextEdit o Mail no se está ejecutando, launch y activate abrir una nueva ventana visible por defecto. osascript -e 'tell app "TextEdit"' -e reopen -e activate -e end también reabre una ventana por defecto si TextEdit se está ejecutando pero no tiene ninguna ventana abierta.

open -jg normalmente abre una aplicación oculta ( -j ) y sin llegar a la parte delantera ( -g ). Para algunas aplicaciones como TextEdit y Mail, abre una nueva ventana visible si la aplicación se está ejecutando pero no tiene Windows abierto. Para evitarlo, compruebe si la aplicación ya se está ejecutando con por ejemplo pgrep . El -j opción para open se añadió en 10.8 y sólo se muestra en el mensaje de ayuda y no en la página del hombre.

lsappinfo launch launchandhide=true nofront=true /Applications/TextEdit.app también abre siempre el TextEdit oculto y sin hacerla frontal. lsappinfo se añadió en 10.9. No sé cómo usar lsappinfo para esperar hasta que una solicitud termine de abrirse.

Los ajustes de los elementos de inicio de sesión se almacenan en ~/Library/Preferences/com.apple.loginitems.plist . Puedes añadir un elemento de inicio de sesión con AppleScript:

osascript -e 'tell application "System Events" to make new login item at end with properties {path:"/Applications/TextEdit.app", name:"TextEdit", hidden:true}'

Algunas aplicaciones y procesos se inician mediante listas de propiedades en ~/Library/LaunchAgents/ , /Library/LaunchAgents/ o /Library/LaunchDaemons/ . _com.apple.SMLoginItemBookmarks en /var/db/launchd.db/com.apple.launchd.peruser.$UID/overrides.plist se utiliza para configurar los elementos de inicio de sesión para las aplicaciones de ayuda utilizadas por las aplicaciones de la caja de arena como ScreenFlow, DayOne y TuneUp.

Desde el 10.7 ha habido un retraso relativamente largo antes de que se inicien algunos elementos de inicio de sesión o trabajos de lanzamiento. No conozco ninguna manera de reducirlo, pero Preguntas frecuentes de KeyRemap4MacBook dice que es causado por Resume:

KeyRemap4MacBook no funciona después del arranque en OS X 10.7. ¿Qué debo hacer?

La función "Reanudar", introducida por Lion, retrasa el lanzamiento de las aplicaciones al iniciar sesión.

Hasta que KeyRemap4MacBook.app no se lance al iniciar sesión, la disposición del teclado no se modificará. Por favor, espere un minuto hasta que se muestre el menú de KeyRemap4MacBook.

3voto

ylluminate Puntos 428

Así que como no he visto ninguna recomendación, voy a seguir adelante y dar la respuesta que he dado hasta ahora.

La solución hasta ahora para mí ha sido Startupizer . No es óptimo, obviamente, ya que es una solución pagada y no es un método que esté directamente disponible en el sistema operativo, pero funciona y me ha permitido crear condiciones de dependencia y varios otros retrasos a la orden que ha sido útil y ha satisfecho mis necesidades.

Espero que esto ayude a alguien y ciertamente espero que alguien recomiende una solución más integral del sistema operativo pronto.

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