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

7

He visto algunas aplicaciones con revisiones mixtas que permitirán a un usuario cambiar el orden de los elementos de inicio. Simplemente preferiría el método "simple" y seguir usando el shell o el editor Open Directory / netinfo para hacer esto. Me doy cuenta de que esto no se controla mediante 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 debo garantizar que ciertas aplicaciones se inicien antes que otras (como ScreenRecycler, ya que necesito aplicaciones para abrir en la otra pantalla cuando se enciendan). / p>     

pregunta ylluminate 27.02.2014 - 00:46

2 respuestas

2

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

La solución hasta ahora para mí ha sido Startupizer . Obviamente, no es óptimo ya que es una solución de pago 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 han sido útiles y resueltos. mis necesidades.

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

    
respondido por el ylluminate 28.02.2014 - 00:01
3

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.

    
respondido por el user495470 28.02.2014 - 15:53

Lea otras preguntas en las etiquetas