Evite que la Terminal sobrescriba las preferencias al salir

Cuando un usuario carga mi programa C++, quiero que Terminal se vea de cierta manera. Resolví esto envolviendo mi programa en una aplicación AppleScript que sobrescribe ~/Library/Preferences/com.apple.Terminal.plist(haciendo una copia de seguridad primero) antes de abrir el programa. Con un subsiguiente killall cfprefsd, esto funciona (si la Terminal no estaba abierta para empezar), pero no quiero estropear las preferencias de la Terminal del usuario. Entonces, después de llamar a mi programa, lo sobrescribo ...Terminal.plistnuevamente con la copia de seguridad de la configuración original.

El problema es que cuando mi programa termina y la Terminal se cierra, sus preferencias se sobrescriben automáticamente con las de la ventana actual, lo que significa que el usuario se queda con el aspecto que configuré para mi programa. Traté de contrarrestar esto haciendo que AppleScript esperara hasta que se cerrara la Terminal y luego sobreescribiera la plist con la copia de seguridad una vez más, lo que funciona, pero si mi aplicación se cerrara antes que la Terminal, esto fallaría, por supuesto. Y todo el proceso parece bastante complicado para empezar.

¿Puedo evitar que Terminal sobrescriba sus preferencias cuando se cierra? O incluso mejor, ¿puedo hacer que mi código se ejecute en una terminal que tenga el aspecto que quiero sin alterar la configuración del usuario? Preferiblemente, no usaría la Terminal para ejecutar mi código (para que tampoco falle cuando la Terminal ya estaba abierta), pero creo que la única alternativa es escribir el mío...

¿Por qué está usando la terminal en lugar de ejecutar el comando Unix necesario directamente en macOS? En applescript usas do shell script. Podría usar iterm2 en su lugar.
El AppleScript sirve como contenedor para mi ejecutable, que muestra cosas en una ventana de terminal. Entonces, dado que tenía el contenedor allí de todos modos, tenía sentido para mí usarlo para configurar Terminal antes de iniciar el programa. Probé iterm2 pero tampoco pude hacer que funcionara como esperaba.
¿Qué pasa con otros usos del terminal si funcionan con tu configuración? Si necesita tanto control, escriba una aplicación de interfaz gráfica de usuario

Respuestas (1)

Buscaría qué se puede hacer con applescript usando el diccionario de secuencias de comandos.

editor de secuencias de comandos > archivo > abrir diccionario de secuencias de comandos

No sé los detalles de lo que estás haciendo, pero aquí hay algunas opciones para colorear.

ingrese la descripción de la imagen aquí

¡Gracias! Sin embargo, por lo que puedo decir, FISH todavía usa Terminal en MacOS. Pero cambiar el aspecto de la Terminal a través de AppleScript es una buena idea, no sabía que eso era posible.
Borraré las cosas en FISH. Tiene razón, "fish.app incluye el caparazón de pescado con un AppleScript que lo inicia en la Terminal. No se instala nada".