0 votos

Diferentes estilos para diferentes terminales

Tengo un nuevo Mac M1 (gran máquina, por cierto), así que necesito ejecutar ciertas cosas bajo Rosetta. Para ello, he copiado Terminal.app a Rosetta Terminal.app y lo he configurado para que se ejecute bajo Rosetta. Cambié el estilo por defecto de Rosetta Terminal.app a un esquema de color diferente para que pueda ver fácilmente cuál es cuál. Funcionó muy bien hasta que reinicié y entonces mi Terminal normal adquirió el estilo de Rosetta.

Estoy seguro de que están cargando las mismas configuraciones, pero ¿hay alguna manera de cambiar eso?

Gracias.

2voto

rybosome Puntos 1829

No estoy seguro de una manera perfecta de hacer esto porque el esquema de color por defecto (conocido como Configuración de la ventana en Terminal -speak) es un dominio de aplicación -nivel de usuario por defecto, lo que significa que se establece en base a un identificador por paquete. Dado que dos copias del mismo Terminal comparten un ID de paquete ( com.apple.terminal específicamente), la última aplicación que escriba en la base de datos de valores predeterminados y la abandone será aquella cuya configuración se aplique en el siguiente lanzamiento.

Dicho esto, una solución decente es anular las claves relevantes en el momento del lanzamiento a través de un argumento. Puedo ver dos claves relevantes cuando leo mis valores predeterminados:

  • "Default Window Settings"
  • "Startup Window Settings"

Ambas claves esperan un valor de cadena que coincida con el nombre de uno de sus nombres predefinidos de Configuración de Ventana (por ejemplo, "Basic" , "Grass" , "Homebrew" etc.). Así que una invocación sería algo así:

/path/to/RosettaTerminalExecutable -"Default Window Settings" "Pro" -"Startup Window Settings" "Pro"

Para ello es necesario que primero tenga Terminal abierto, por lo que puedes escribir un AppleScript que lo haga por ti. De hecho, puede incluso hacer que el script ejecute la copia del sistema de Terminal bajo Rosetta utilizando el arch (como se insinúa en el comentario de @nohillside). De esta manera, ni siquiera sería necesario mantener un Rosetta Terminal.app lo que le ahorra un poco de espacio y también tiene la ventaja de mantener la paridad de la versión de la aplicación cada vez que hay una actualización de MacOS.

Aquí hay un AppleScript que hace esto. Puede cambiar el WindowSettings al nombre de su esquema de color preferido para la versión de Rosetta y luego guarde este script como una aplicación para que puedas simplemente hacer doble clic para ejecutarlo.

# Change this to choose your desired color scheme
set WindowSettings to "Homebrew"

set PathToTerminalExecutable to "/System/Applications/Utilities/Terminal.app/Contents/MacOS/Terminal"
set Command to "arch -x86_64 " & PathToTerminalExecutable & " -\"Default Window Settings\" \"" & WindowSettings & "\" -\"Startup Window Settings\" \"" & WindowSettings & "\""

do shell script Command

Hacerlo así tiene dos limitaciones:

  1. Si has configurado MacOS para que restaure Windows cuando se reabra una aplicación ( System Preferences -> General -> Close windows when quitting an app no está marcada), cualquier Terminal Windows se reabrirá utilizando su configuración habitual, no la configuración anulada. Esto puede dar lugar a cierta confusión. Es posible que desee desactivar esta configuración para Terminal sólo: defaults write com.apple.terminal NSQuitAlwaysKeepsWindows -bool false (asegúrese de que todas las copias de Terminal se cierran primero)

  2. Si no tiene una instancia de Terminal ya se está ejecutando antes de ejecutar el script anterior, MacOS lo tratará como si se hiciera doble clic en el Terminal y no podrá abrir la versión no Rosetta haciendo doble clic. Para evitarlo, puedes preiniciar tu aplicación normal Terminal primero o seguir con tu plan original de duplicar la aplicación y cambiar el script para ejecutar la copia duplicada en su lugar.

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