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.plist
nuevamente 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...
sello de historia
Cosmo M
mmmmmm