Cómo cambiar el color de las ventanas en Mac usando un archivo bash (.sh)

En términos simples, en Terminal ingresas:

$ color = {$ rojo, $ verde, $ azul, $ alfa}

osascript -e “decirle a la aplicación \” Terminal \ “que establezca el color de fondo de la ventana 1 en $ color”

donde los valores para $ rojo, $ verde, $ azul y $ alfa son enteros sin signo de 16 bits (de 0 a 65535) y $ alpha, en mi prueba rápida y limitada en OS X 10.11, se ignora.

También es posible que pueda cambiar el nombre de la aplicación en el comando osascript tell, pruebe también Finder; es posible que deba cerrar y abrir la ventana para ver los cambios de color.

Yo, por ejemplo, uso este script para ejecutar antes de una sesión ssh para cambiar mi ventana a un color aleatorio, por lo que sé que los comandos que estoy ejecutando no están en mi estación de trabajo local:

#! / usr / bin / perl

# este script vino de Tim Buchheim

# http://gouda.cs.hmc.edu/tim/appl…

# http://gouda.cs.hmc.edu/~tim/rc.pl

# parámetros que determinan el rango de colores aleatorios elegidos

my ($ min_h, $ max_h) = (0, 360); # tono (0-360)

my ($ min_s, $ max_s) = (0.05, 0.15); # saturación (0-1)

my ($ min_v, $ max_v) = (0.85, 1.00); # brillo (0-1)

my ($ min_a, $ max_a) = (0.70, 0.90); # alfa (0-1)

# genera un número aleatorio entre dos valores

sub rand entre {

my ($ min, $ max) = @_;

devolver $ min + rand ($ max- $ min);

}

# Algoritmo de conversión HSV a RGB de algoritmos de conversión de color

sub hsv2rgb {

my ($ h, $ s, $ v) = @_;

# manejar estuche en escala de grises

return ($ v, $ v, $ v) if ($ s == 0);

mi ($ i, $ f, $ p, $ q, $ t);

$ h / = 60; # convertir a sector entre 0 y 5

$ i = int ($ h);

$ f = $ h – $ i;

$ p = $ v * (1- $ s);

$ q = $ v * (1- $ s * $ f);

$ t = $ v * (1- $ s * (1- $ f));

return ($ v, $ t, $ p) si $ i == 0;

return ($ q, $ v, $ p) si $ i == 1;

return ($ p, $ v, $ t) si $ i == 2;

return ($ p, $ q, $ v) si $ i == 3;

return ($ t, $ p, $ v) si $ i == 4;

retorno ($ v, $ p, $ q);

}

# convierte la lista de flotadores en una cadena adecuada para AppleScript

sub rgb2string {

return join “,”, map (int (65536 * $ _), @ _);

}

#programa principal

my @rgb = hsv2rgb (randbetween ($ min_h, $ max_h), randbetween ($ min_s, $ max_s), randbetween ($ min_v, $ max_v));

my $ alpha = int (65536 * randbetween ($ min_a, $ max_a));

my $ color = ‘{‘. rgb2string (@rgb). “, $ alpha}”;

sistema “osascript”, “-e”, “dile a la aplicación \” Terminal \ “que establezca el color de fondo de la ventana 1 en $ color”;

No puede hacerlo directamente a través del procesador de shell por lotes bsh. Debe escribir un programa C / C ++ en el nivel de shell y luego compilar este programa y ejecutarlo como un metacomando por lotes basado en bsh. Todos los códigos de color para las máquinas basadas en Mac OS-X se basan en el estándar binario ANSI. Robotronics LLC | Facebook