Come impostare il tema / profilo del terminale in modo programmato

2

Contesto per questa domanda: Sto scrivendo uno script bash per configurare automaticamente qualsiasi Mac con i miei strumenti / preferenze, idealmente con un comando, se possibile.

La domanda: Ho un file di temi .terminal che uso e mi piacerebbe che lo script fosse in grado di impostarlo come profilo terminale predefinito senza doverlo fare attraverso la GUI dopo aver eseguito il mio script, esiste un comando per questo?

    
posta Jemar Jones 01.12.2018 - 03:16
fonte

1 risposta

0

Bene, ho trovato una soluzione:

Per impostare il tema del terminale a livello di programmazione è necessario scrivere nelle preferenze del tuo sistema. Quindi il modo più semplice che ho trovato per fare questo è stato quello di estrarre prima le preferenze dell'utente da un mac esistente. Ciò presuppone che tu abbia già importato il tuo file .terminal nei profili del Terminale sul tuo computer esistente. Quindi per prima cosa sul Mac esistente devi eseguire quanto segue (Il mio tema si chiama Material-Theme, sostituisci quella parte con la tua) :

plutil -extract Window\ Settings.Material-Theme xml1 -o - ~/Library/Preferences/com.apple.Terminal.plist > theme.xml

Questo creerà un file theme.xml da utilizzare nel tuo script. La prossima cosa è solo per modificare un po 'il file. Questo potrebbe essere automatizzato, ma se sei come me hai solo bisogno di fare questa parte una volta, quindi l'ho fatto manualmente. Apri il file e rimuovi l'xml circostante in alto e in basso in modo che tutto ciò che hai è il dict, il mio è stato preso come riferimento: link .

Ora nello script sulla nuova macchina puoi semplicemente eseguire quanto segue per inserire questo tema nelle preferenze dell'utente:

theme=$(<theme.xml)
plutil -replace Window\ Settings.Material-Theme -xml "$theme" ~/Library/Preferences/com.apple.Terminal.plist
defaults write com.apple.Terminal "Default Window Settings" -string "Material-Theme"
defaults write com.apple.Terminal "Startup Window Settings" -string "Material-Theme"

Ora, dopo aver eseguito quanto sopra quando si chiude completamente l'app Terminal e si riavvia, il tema dovrebbe essere il predefinito. Questo processo può probabilmente essere migliorato, ma questo ha funzionato per me!

Nota, potresti anche voler eseguire defaults read com.apple.Terminal e controllare se ci sono altre chiavi rilevanti per il tuo tema. Nel mio caso ho trovato "NSWindow Frame TTWindow Material-Theme" = "0 327 640 450 0 0 1280 777 "; quindi il mio script include anche defaults write com.apple.Terminal "NSWindow Frame TTWindow Material-Theme" -string "0 327 640 450 0 0 1280 777 "

    
risposta data 01.12.2018 - 22:52
fonte

Leggi altre domande sui tag