È possibile aggiungere elementi di login tramite la riga di comando in High Sierra?

2

È possibile aggiungere elementi di login tramite un comando nel terminale?

Vorrei aggiungere alcune utility essenziali come ShiftIt e Alfred ai miei elementi di accesso tramite uno script quando sto configurando un nuovo Mac. Nelle versioni di macOS precedenti ad High Sierra questi elementi sono stati memorizzati in un plist in ~/Library/Preferences/com.apple.loginitems.plist ma poiché High Sierra è stato rilasciato sembra che siano stati migrato per essere caricato tramite un nuovo meccanismo .

Sono interessato ai modi per impostare gli elementi di login da un terminale principalmente per High Sierra ma interessati da un punto di vista accademico per sapere come potrebbe essere fatto nelle versioni precedenti di macOS.

    
posta cclark 29.12.2017 - 08:07
fonte

1 risposta

3

Ho provato quanto segue in macOS 10.13.1 e OS X 10.8.6 .

In Terminale , utilizzando la seguente sintassi :

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

Testato con un'applicazione denominata EventScripts :

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

Ha restituito:

login item UNKNOWN

Quale è apparentemente l'output normale con questo comando ed è stato verificato preformando la stessa azione in Script Editor .

Quindi cerca in Preferenze di sistema > Utenti e amp; Gruppi > $ USER > Elementi di accesso , EventScripts è stato aggiunto.

Note:

In OS X 10.8.6 ha aggiornato il seguente file:

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

In macOS X 10.13.1 [1] ha aggiornato il seguente file:

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

Che, a proposito, è anche un file plist , ma con un'estensione btm .

Puoi anche eliminare un elemento di accesso da Terminale utilizzando la seguente sintassi :

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

Dove "name" nel comando è come mostrato nell'emissione del seguente comando :

osascript -e 'tell application "System Events" to get the name of every login item'

[1] Aggiornamento: il file backgrounditems.btm è ancora il file di destinazione da macOS X 10.13.1 e più tardi.

    
risposta data 29.12.2017 - 10:43
fonte

Leggi altre domande sui tag