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.