He visto algunas aplicaciones con críticas mixtas que permitirán a un usuario cambiar el orden de los elementos de inicio. Simplemente preferiría el método "bare metal" y seguiría usando el shell o el editor Open Directory/netinfo para hacer esto. Me doy cuenta de que esto no se controla a través de launchd
, ¿cuál es el mecanismo y dónde está la ubicación de preferencia para la definición de inicio de la aplicación?
Descubrí que el proceso de restauración de la aplicación/ventana de OS X es menos que mediocre y necesito garantizar que ciertas aplicaciones se inicien primero antes que otras (como ScreenRecycler, ya que necesito que las aplicaciones se abran en la otra pantalla cuando se encienden).
Si está utilizando un script de shell para abrir aplicaciones, intente 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
Puede ejecutar el script al iniciar sesión, por ejemplo, guardando el plist a continuación 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"
quedan bloqueados hasta que la aplicación termine de abrirse. launch
no hace una aplicación al frente, pero activate
lo hace. Si una aplicación como TextEdit o Mail no se está ejecutando, launch
abra activate
una nueva ventana predeterminada visible. osascript -e 'tell app "TextEdit"' -e reopen -e activate -e end
también vuelve a abrir una ventana predeterminada si TextEdit se está ejecutando pero no tiene ventanas abiertas.
open -jg
normalmente abre una aplicación oculta ( -j
) y sin ponerla al frente ( -g
). Para algunas aplicaciones como TextEdit y Mail, abre una nueva ventana visible si la aplicación se está ejecutando pero no tiene ventanas abiertas. Para evitar eso, verifique si la aplicación ya se está ejecutando con, por ejemplo pgrep
, . La -j
opción para open
se agregó en 10.8 y solo se muestra en el mensaje de ayuda y no en la página de manual.
lsappinfo launch launchandhide=true nofront=true /Applications/TextEdit.app
también siempre abre TextEdit oculto y sin ponerlo al frente. lsappinfo
se agregó en 10.9. No sé cómo usar lsappinfo
para esperar hasta que una aplicación termine de abrirse.
La configuración de los elementos de inicio de sesión se almacena en archivos ~/Library/Preferences/com.apple.loginitems.plist
. Puede agregar 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 a través de listas de propiedades en ~/Library/LaunchAgents/
, /Library/LaunchAgents/
o /Library/LaunchDaemons/
. _com.apple.SMLoginItemBookmarks
in /var/db/launchd.db/com.apple.launchd.peruser.$UID/overrides.plist
se usa para configurar elementos de inicio de sesión para aplicaciones auxiliares utilizadas por aplicaciones de espacio aislado como ScreenFlow, DayOne y TuneUp.
Desde 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 forma de reducirlo, pero las preguntas frecuentes de KeyRemap4MacBook dicen que es causado por Resume:
KeyRemap4MacBook no funciona después del arranque en OS X 10.7. ¿Qué tengo que hacer?
La función "Reanudar" introducida por Lion retrasa el lanzamiento de aplicaciones al iniciar sesión.
Hasta que se inicie KeyRemap4MacBook.app al iniciar sesión, la distribución del teclado no cambiará. Espere un minuto hasta que se muestre el menú de KeyRemap4MacBook.
Entonces, dado que no he visto ninguna recomendación, continuaré y presentaré la respuesta con la que he avanzado hasta ahora.
La solución hasta ahora para mí ha sido Startupizer . Obviamente, no es óptimo, ya que es una solución paga y no es un método que esté directamente disponible desde el sistema operativo, pero funciona y me ha permitido crear condiciones de dependencia y varios otros retrasos en el pedido que ha sido útil y cumplido. mis necesidades.
Espero que esto ayude a alguien y ciertamente espero que alguien recomiende una solución más integral del sistema operativo pronto.
iluminar
bmike