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:
-
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)
-
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.