macos terminal reload defaults

macos - Recargar com.apple.Terminal.plist



reload defaults (4)

Quiero usar un script para modificar las preferencias de mi terminal para mi Mac, por lo que puede cerrar la ventana cuando salga de la terminal. Yo uso este comando en el script:

/usr/libexec/PlistBuddy -c "Set /"Window Settings/":Basic:shellExitAction 0" ~/Library/Preferences/com.apple.Terminal.plist

Ahora el problema es después de ejecutar el script, el archivo .plist se cambia, lo controlo por

defaults read com.apple.Terminal "Window Settings"

El valor es 0 ahora.

Pero el problema es que el terminal no vuelve a cargar el archivo .plist, y cuando salgo del terminal, vuelve a escribir el archivo .plist como ''2''. Así que mi pregunta es cómo dejar que el terminal vuelva a cargar el archivo .plist cuando se está ejecutando o detener la reescritura del archivo cuando salga.


Mi solución adaptada se ejecuta en OS X Mavericks (también).

En el ejemplo, agrego un nuevo PermanentServer para una conexión ssh en Terminal -p 22 www.example.com -l user -L 33306:localhost:3306

  1. Cierre la aplicación Terminal
  2. Abra el archivo plist en Xcode y edite la configuración PermanentServer (copie y pegue la cadena de arriba)

    open ~/Library/Preferences/com.apple.Terminal.plist

  3. Guarde y cierre el archivo plist
  4. Abra Applescript-App y copie / pegue / ejecute el siguiente código:

    do shell script "defaults read ~/Library/Preferences/com.apple.Terminal.plist"

  5. Abra Terminal-App y presione MAYÚS + CMD + K y busca en la lista de servidores

Gracias por esta sugerencia aquí: http://www.cnet.com/how-to/how-to-manually-edit-defaults-plist-files-in-mavericks/


En 10.9 (Mavericks), las preferencias están en la memoria caché. Después de sobrescribir sus preferencias desde la Terminal, debe leerlas con

defaults read com.apple.Terminal

y luego salir y reiniciar el terminal.

Tengo mis preferencias de Terminal en mi servidor, por lo que el comando completo que uso en una nueva máquina o en un nuevo perfil es:

curl -o ~/Library/Preferences/com.apple.Terminal.plist http://example.com/xyz/com.apple.Terminal.plist.`sw_vers / | grep ''ProductVersion:'' / | grep -o ''10/.[0-9]*''` / && defaults read com.apple.Terminal


Suena como un clásico problema de huevo y pollo para mí.

El terminal escribe sus preferencias actuales al salir y sobrescribe cualquiera de sus cambios, sin embargo, necesita la Terminal cargada para tener un shell para hacer esos cambios con PlistBuddy.

Puedo pensar en dos soluciones aquí:

1) escribe un pequeño script que puedes ejecutar desde un proceso que no sea Terminal ... ¿tal vez un Applescript o algo que puedas pasar a una llamada al system desde una pequeña aplicación de Macintosh? :-)

2) simplemente cambie la "Configuración" a lo que desee yendo a las preferencias de la Terminal.


El comando "at" puede ejecutar un comando en el futuro.

$ at now + 1 minute /usr/libexec/PlistBuddy -c "Set /"Window Settings/":Basic:shellExitAction 0" ~/Library/Preferences/com.apple.Terminal.plist ^D <<< press CTRL-D job 3 at Mon Apr 24 15:34:00 2017 $ exit

Ahora salga de todos los terminales. Espere 1 minuto (como mínimo). Ahora inicie Terminal y verá que la configuración ha cambiado.