¿Se pueden agregar elementos de inicio de sesión a través de la línea de comandos en High Sierra?

1

¿Se pueden agregar elementos de inicio de sesión mediante un comando en el terminal?

Me gustaría agregar algunas utilidades esenciales como ShiftIt y Alfred a mis elementos de inicio de sesión a través de un script cuando estoy configurando una nueva Mac. En versiones de macOS anteriores a High Sierra, estos elementos se almacenaron en una lista en ~/Library/Preferences/com.apple.loginitems.plist , pero desde que se lanzó High Sierra parece que han sido migrado para ser cargado a través de un nuevo mecanismo .

Me interesan las formas de configurar los elementos de inicio de sesión desde una terminal principalmente para High Sierra, pero me interesa desde una perspectiva académica para saber cómo se podría hacer en versiones anteriores de macOS.

    
pregunta cclark 29.12.2017 - 08:07

1 respuesta

2

Probé lo siguiente en macOS 10.13.1 y OS X 10.8.6 .

En Terminal , utilizando la siguiente sintaxis :

osascript -e 'tell application "System Events" to make login item at end with properties {path:"/path/to/itemname", hidden:false}'

Probado con una aplicación llamada EventScripts :

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

Devolvió:

login item UNKNOWN

Que aparentemente es el resultado normal con este comando y se verificó al realizar la misma acción en Script Editor .

Luego, busca en Preferencias del sistema > Usuarios & Grupos > $ USER > Elementos de inicio de sesión , EventScripts se agregó.

Notas :

En OS X 10.8.6 se actualizó el siguiente archivo:

~/Library/Preferences/com.apple.loginitems.plist

En macOS X 10.13.1 se actualizó el siguiente archivo:

~Library/Application Support/com.apple.backgroundtaskmanagementagent/backgrounditems.btm

Que, por cierto, también es un archivo plist , pero con una extensión btm .

También puede eliminar un elemento de inicio de sesión de Terminal utilizando la siguiente sintaxis :

osascript -e 'tell application "System Events" to delete login item "name"'

Donde "name" en el comando es como se muestra en la salida del siguiente comando :

osascript -e 'tell application "System Events" to get the name of every login item'
    
respondido por el user3439894 29.12.2017 - 10:43

Lea otras preguntas en las etiquetas