0 votos

Evitar que Terminal sobrescriba las preferencias al salir

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

1voto

Kerry Puntos 100

Yo miraría lo que se puede hacer con applescript usando el diccionario de scripting.

script editor > archivo > abrir diccionario de scripts

No conozco los detalles de lo que estás haciendo pero aquí tienes algunas opciones para colorear.

enter image description here

0 votos

¡Gracias! Por lo que sé, FISH sigue usando Terminal en MacOS. Pero cambiar el aspecto de la Terminal a través de AppleScript es una buena idea, no sabía que era posible.

0 votos

Borraré las cosas de FISH. Estás en lo cierto, "fish.app incluye el shell de fish con un AppleScript que lo lanza en Terminal. No se instala nada".

AppleAyuda.com

AppleAyuda es una comunidad de usuarios de los productos de Apple en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X