
¿Existe algún comando que pueda usarse para cambiar la combinación de colores de la Terminal Mac OS X? Me gusta la idea de poder cambiar los colores según los scripts que ejecuto. Hasta ahora solo estoy cambiando el color de mi indicador de bash con PS1, lo cual está bien, pero no es tan notable como me gustaría.
Respuesta1
Dependiendo de quéexactamentedesea lograr, aquí hay algunas ideas en AppleScript usando sus estilos de Terminal. Estos son más robustos que tput
, porque se restablecen mediante indicaciones de colores. etc (al menos para mí).
Esto configura todas las pestañas que ejecutan Python (no hay ningún servidor SSH disponible para pruebas en este momento) en Homebrew, las demás en Ocean:
tell application "Terminal"
repeat with w from 1 to count windows
repeat with t from 1 to count tabs of window w
if processes of tab t of window w contains "Python" then
set current settings of tab t of window w to (first settings set whose name is "Homebrew")
else
set current settings of tab t of window w to (first settings set whose name is "Ocean")
end if
end repeat
end repeat
end tell
guárdelo como script y ejecútelo en osascript Name.scpt
cualquier momento que desee para volver a colorear sus shells (por supuesto, puede envolver esto como un script de shell o algo así).
Si desea mostrar todos los procesos de larga duración de forma diferente, utilice la siguiente condición:
if busy of tab t of window w is true then
O puede establecer el estilo de una sola pestaña, seleccionada manualmente:
on run argv
tell application "Terminal" to set current settings of tab (item 1 of argv as number) of front window to first settings set whose name is (item 2 of argv)
end run
Ejecútelo así:
osascript StyleTerm.scpt 3 Homebrew
-> ¡La tercera pestaña de la ventana de Terminal frontal tiene estilo Homebrew!
Si desea modificar las ventanas de fondo, reemplace "ventana frontal" con una expresión entre paréntesis como justo después de "tabulación". Si siempre desea modificar la "pestaña actual" seleccionada, utilice selected tab
en lugar de tab (item 1 of argv as number)
.
Agregue lo siguiente a su .bash_profile
si la primera solución es demasiado manual para usted:
PROMPT_COMMAND='osascript "/path/to/Name.scpt"'
Ahora se ejecuta antes de cada mensaje (el único problema: no después de iniciar algo, es decir ssh
. Pero este tema no trata sobre trucos sofisticados de bash de todos modos. Esto es solo un indicador).
Respuesta2
Sus scripts pueden usar el tput
comando para configurar colores de manera portátil. Pruebe el siguiente script y verá el terminal claro sobre un fondo cian oscuro con un texto cian brillante.
#!/bin/bash
tput setab 6
tput clear
tput setaf 14
echo Hello World
Puedes ver más información sobre esto enman 5 terminfo
en la sección denominada "Manejo del color".
Puedes hacer lo mismo haciendo eco de las secuencias de escape que tu terminal reconoce directamente. Será más rápido, pero es posible que no funcione con otro programa de terminal. Muchos de ellos reconocen secuencias xterm y así es como se vería el script anterior usándolas.
#!/bin/bash
printf "\033[48;5;6m" # or "\033[46m"
printf "\033[H\033[2J" # your system's clear command does something similar
printf "\033[38;5;14m" # or "\033[96m"
echo Hello World
Hay más información sobre las secuencias de control de xterm.aquí.
Respuesta3
Puedes usar AppleScript para darle a cada terminal nuevo un tema aleatorio.
Edite su .bash_profile
y agregue este comando
osascript -e "tell application \"Terminal\" to set current settings of front window to some settings set"
Si obtienes el mismo terminal con tema aleatorio, siempre puedes presionarlo ⌘I
y configurarlo manualmente.
Esto es más útil si obtienes muchos temas de terminal de aspecto diferente. Hay muchos sitios para eso, si miras a tu alrededor.
Respuesta4
Este AppleScript me funciona en OS X 14.3 (y las otras respuestas no).
tell application "Terminal"
repeat with i in windows
try
set current settings of tabs in i to settings set "Solarized Dark"
end try
end repeat
end tell
La aplicación Terminal parece haber cambiado la forma en que expone sus pestañas y ventanas en OS X 14.3, por lo que obtendrá errores de manera confiable al recorrer las pestañas de algunas de sus ventanas. Pero estas no parecen ser ventanas reales, así que puedes simplemente ignorarlas (lo que hago con el try ... end try
bloque).
Tiendo a incluir pequeños scripts como este en mis scripts de shell de esta manera:
osascript -e "tell application \"Terminal\"
repeat with i in windows
try
set current settings of tabs in i to settings set \"Solarized Dark\"
end try
end repeat
end tell"
Personalmente uso esto para cambiar automáticamente entre temas claros y oscuros en mi terminal (solo necesito abrir una nueva pestaña de terminal o ejecutar mi color_mode
función). Puedes ver mi código completo para hacer esto.en mi repositorio de archivos de puntos.