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 la lista 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"
se bloquean hasta que la aplicación termina de abrirse. launch
no hace que la aplicación esté al frente, pero activate
lo hace. Si una aplicación como TextEdit o Mail no se está ejecutando, launch
y activate
abren 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
usualmente abre una aplicación oculta ( -j
) y sin hacerla 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, compruebe si la aplicación ya se está ejecutando con, por ejemplo, pgrep
. La opción -j
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 hacer que esté al frente. lsappinfo
se añadió en 10.9. No sé cómo usar lsappinfo
para esperar hasta que una aplicación termine de abrirse.
Las configuraciones para los elementos de inicio de sesión se almacenan en ~/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
en /var/db/launchd.db/com.apple.launchd.peruser.$UID/overrides.plist
se usa para configurar elementos de inicio de sesión para aplicaciones de ayuda utilizadas por aplicaciones de espacio aislado como ScreenFlow, DayOne y TuneUp.
Desde la versión 10.7 ha habido un retraso relativamente largo antes de que se inicien algunos elementos de inicio de sesión o trabajos launchd. No conozco ninguna forma de reducirlo, pero Preguntas frecuentes de KeyRemap4MacBook dice que está causado por un currículum:
KeyRemap4MacBook no funciona después del inicio en OS X 10.7. ¿Qué debo hacer?
La función "Reanudar" introducida por Lion retrasa el lanzamiento de aplicaciones al iniciar sesión.
Hasta que KeyRemap4MacBook.app se inicie al iniciar sesión, la distribución del teclado no se modifica. Espere un minuto hasta que aparezca el menú de KeyRemap4MacBook.