Cuando un usuario carga mi programa C++, quiero que el Terminal tenga un aspecto determinado. Resolví esto envolviendo mi programa en un AppleScript .app que sobrescribe ~/Library/Preferences/com.apple.Terminal.plist
(haciendo primero una copia de seguridad) antes de abrir el programa. Con una posterior killall cfprefsd
Esto funciona (si la Terminal no estaba abierta para empezar), pero no quiero estropear las preferencias de la Terminal del usuario. Así que, después de llamar a mi programa, sobrescribo ...Terminal.plist
de nuevo con la copia de seguridad de la configuración original.
El problema es que cuando mi programa termina y Terminal se cierra, sus preferencias se sobrescriben automáticamente con las de la ventana actual, lo que significa que el usuario está atascado con el aspecto que he establecido para mi programa. Intenté contrarrestar esto haciendo que el AppleScript esperara hasta que se cerrara el Terminal y luego sobrescribiendo el plist con la copia de seguridad una vez más, lo cual funciona, pero si mi aplicación se cerrara antes que el Terminal entonces esto falla, por supuesto. Y todo el proceso parece bastante complicado para empezar.
¿Puedo evitar que Terminal sobrescriba sus preferencias cuando se cierre? O mejor aún, ¿puedo hacer que mi código se ejecute en un terminal que se vea como yo quiero sin ensuciar la configuración del usuario? Preferiblemente no usaría Terminal en absoluto para ejecutar mi código (para que tampoco falle cuando Terminal ya estaba abierto), pero creo que la única alternativa es escribir el mío propio...
1 votos
¿Por qué utilizas el terminal en lugar de ejecutar el comando unix necesario directamente en MacOS? En applescript usas do shell script. Podrías usar iterm2 en su lugar.
0 votos
El AppleScript sirve como una envoltura para mi ejecutable, que muestra cosas en una ventana de terminal. Así que como ya tenía la envoltura allí de todos modos, me pareció lógico utilizarla para configurar la Terminal antes de lanzar el programa en sí. Probé con iterm2 pero tampoco conseguí que funcionara como esperaba.
0 votos
¿Qué pasa con otros usos del terminal funcionan con su configuración? Si necesitas tanto control escribe una aplicación gui