Efectivamente, puedes utilizar AppleScript para cambiar el color de fondo del Terminal.
Por ejemplo:
tell application "Terminal"
set background color of first window to {33717, 0, 21000, 32288}
end tell
Puedes ejecutarlo desde la línea de comandos con:
osascript -e 'tell application "Terminal"' -e 'set background color of first window to {33717, 0, 21000, 32288}' -e 'end tell'
A continuación, puede cambiar más atributos:
tell application "Terminal"
set background color of first window to {33717, 0, 21000, 32288}
set cursor color of first window to "white"
set normal text color of first window to "white"
set bold text color of first window to "yellow"
end tell
Para ejecutar este tipo de script más largo desde el Terminal, puedes guardarlo en un archivo separado ~/.terminal_change_color.scpt
entonces, llámalo desde la terminal:
osascript ~/.terminal_change_color.scpt
A continuación, puede añadirlo a su ~/.bash_profile
para que se ejecute por cada nueva ventana de Terminal que abra:
echo "osascript ~/.terminal_change_color.scpt" >> ~/.bash_profile
A continuación hay un script para elegir un color de fondo aleatorio. Como @nohillside notó, también hay que ajustar el color del texto para que sea legible (texto blanco sobre fondo oscuro, y texto negro sobre fondo claro). El script se encarga de ello.
global kColorValueMaximum
set kColorValueMaximum to 65535
-- Choose a random color for the background
set randomRed to (random number) * kColorValueMaximum
set randomGreen to (random number) * kColorValueMaximum
set randomBlue to (random number) * kColorValueMaximum
set myBackgroundColor to {randomRed, randomGreen, randomBlue}
-- Select appropriate text colors based on that background
set {myTextColor, myBoldColor} to my ContrastingTextColors(myBackgroundColor)
-- Now inflict them on the frontmost window
tell application "Terminal"
set targetWindow to window 1
set background color of targetWindow to myBackgroundColor
set cursor color of targetWindow to myTextColor
set normal text color of targetWindow to myTextColor
set bold text color of targetWindow to myBoldColor
end tell
on ContrastingTextColors(myColor)
set whiteColor to {kColorValueMaximum, kColorValueMaximum, kColorValueMaximum, kColorValueMaximum}
set lightGreyColor to {40000, 40000, 40000, kColorValueMaximum}
set blackColor to {0, 0, 0, kColorValueMaximum}
set darkGreyColor to {20000, 20000, 20000, kColorValueMaximum}
-- From http://www.wilsonmar.com/1colors.htm
set myRed to (item 1 of myColor) / kColorValueMaximum
set myGreen to (item 2 of myColor) / kColorValueMaximum
set myBlue to (item 3 of myColor) / kColorValueMaximum
set magicY to (0.3 * myRed) + (0.59 * myGreen) + (0.11 * myBlue)
if (magicY < 0.5) then
return {whiteColor, lightGreyColor}
else
return {blackColor, darkGreyColor}
end if
end ContrastingTextColors
Alternativamente, puedes crear como 30 temas en tu Terminal Preferencias > Perfiles, y seleccionar uno al azar:
tell application "Terminal"
set themes to {"Basic", "Homebrew", "Man Page", "Novel", "Pro"}
set theme to some item of themes
set current settings of window 1 to settings set theme
end tell
Créditos para:
0 votos
A ver si alguien encuentra una solución AppleScript para esto. ¿Cómo quieres que se manejen los colores de las fuentes para asegurarte de que siempre puedas leer el texto en el Terminal?