Skip to content

Instantly share code, notes, and snippets.

@bet4a
Last active June 15, 2016 18:52
Show Gist options
  • Save bet4a/11128783 to your computer and use it in GitHub Desktop.
Save bet4a/11128783 to your computer and use it in GitHub Desktop.
Chromebook Pixel Lightbar: Rainbow Flow

A gorgeous looping gradient for the Chromebook Pixel lightbar.

To use on your Dev Mode-enabled machine, copy this script, open a Chrome OS shell (Ctrl+Alt+T) and type shell. Right click to paste the code and press Enter; it'll start running after a second.

(
separateLightsBy=12
speed=0.08
declare -a Gradient=('0 BF BF' '0 C3 BC' '0 C6 B8' '1 CA B4' '1 CD B0' '2 D0 AC' '2 D4 A8' '3 D7 A5' '4 DA A0' '5 DD 9C' '7 DF 98' '8 E2 94' 'A E5 90' 'B E7 8C' 'D EA 88' 'F EC 84' '11 EE 80' '13 F0 7B' '15 F2 77' '18 F4 73' '1A F5 6F' '1D F7 6B' '20 F8 67' '22 FA 63' '25 FB 5F' '28 FC 5A' '2B FD 57' '2F FD 53' '32 FE 4F' '35 FE 4B' '39 FF 47' '3C FF 43' '40 FF 40' '43 FF 3C' '47 FF 39' '4B FE 35' '4F FE 32' '53 FD 2F' '57 FD 2B' '5A FC 28' '5F FB 25' '63 FA 22' '67 F8 20' '6B F7 1D' '6F F5 1A' '73 F4 18' '77 F2 15' '7B F0 13' '7F EE 11' '84 EC F' '88 EA D' '8C E7 B' '90 E5 A' '94 E2 8' '98 DF 7' '9C DD 5' 'A0 DA 4' 'A5 D7 3' 'A8 D4 2' 'AC D0 2' 'B0 CD 1' 'B4 CA 1' 'B8 C6 0' 'BC C3 0' 'BF BF 0' 'C3 BC 0' 'C6 B8 0' 'CA B4 1' 'CD B0 1' 'D0 AC 2' 'D4 A8 2' 'D7 A5 3' 'DA A0 4' 'DD 9C 5' 'DF 98 7' 'E2 94 8' 'E5 90 A' 'E7 8C B' 'EA 88 D' 'EC 84 F' 'EE 80 11' 'F0 7B 13' 'F2 77 15' 'F4 73 18' 'F5 6F 1A' 'F7 6B 1D' 'F8 67 20' 'FA 63 22' 'FB 5F 25' 'FC 5A 28' 'FD 57 2B' 'FD 53 2F' 'FE 4F 32' 'FE 4B 35' 'FF 47 39' 'FF 43 3C' 'FF 40 40' 'FF 3C 43' 'FF 39 47' 'FE 35 4B' 'FE 32 4F' 'FD 2F 53' 'FD 2B 57' 'FC 28 5A' 'FB 25 5F' 'FA 22 63' 'F8 20 67' 'F7 1D 6B' 'F5 1A 6F' 'F4 18 73' 'F2 15 77' 'F0 13 7B' 'EE 11 7F' 'EC F 84' 'EA D 88' 'E7 B 8C' 'E5 A 90' 'E2 8 94' 'DF 7 98' 'DD 5 9C' 'DA 4 A0' 'D7 3 A5' 'D4 2 A8' 'D0 2 AC' 'CD 1 B0' 'CA 1 B4' 'C6 0 B8' 'C3 0 BC' 'BF 0 BF' 'BC 0 C3' 'B8 0 C6' 'B4 1 CA' 'B0 1 CD' 'AC 2 D0' 'A8 2 D4' 'A5 3 D7' 'A0 4 DA' '9C 5 DD' '98 7 DF' '94 8 E2' '90 A E5' '8C B E7' '88 D EA' '84 F EC' '80 11 EE' '7B 13 F0' '77 15 F2' '73 18 F4' '6F 1A F5' '6B 1D F7' '67 20 F8' '63 22 FA' '5F 25 FB' '5A 28 FC' '57 2B FD' '53 2F FD' '4F 32 FE' '4B 35 FE' '47 39 FF' '43 3C FF' '40 40 FF' '3C 43 FF' '39 47 FF' '35 4B FE' '32 4F FE' '2F 53 FD' '2B 57 FD' '28 5A FC' '25 5F FB' '22 63 FA' '20 67 F8' '1D 6B F7' '1A 6F F5' '18 73 F4' '15 77 F2' '13 7B F0' '11 7F EE' 'F 84 EC' 'D 88 EA' 'B 8C E7' 'A 90 E5' '8 94 E2' '7 98 DF' '5 9C DD' '4 A0 DA' '3 A5 D7' '2 A8 D4' '2 AC D0' '1 B0 CD' '1 B4 CA' '0 B8 C6' '0 BC C3' )
trap ctrl_c INT
ctrl_c() {
breakSignal=1
}
breakSignal=0;i=0;
sudo ectool lightbar seq stop &>/dev/null
sudo ectool lightbar 4 00 00 00 &>/dev/null
sleep 1
printf "\n\nEnjoy the rainbow! To return to normal, hit Ctrl+C.\n\n"
while :
do
if [ $breakSignal -eq 1 ]; then
break
fi
sudo ectool lightbar 0 ${Gradient[$((($i+$separateLightsBy*3)%192))]} &>/dev/null
sudo ectool lightbar 1 ${Gradient[$((($i+$separateLightsBy*2)%192))]} &>/dev/null
sudo ectool lightbar 2 ${Gradient[$((($i+$separateLightsBy*1)%192))]} &>/dev/null
sudo ectool lightbar 3 ${Gradient[$((($i)%192))]} &>/dev/null
i=$(($i+1));
if [ $i -gt 191 ]; then
i=0;
fi
sleep $speed
done
sudo ectool lightbar 4 00 00 00 &>/dev/null
sleep 1
sudo ectool lightbar seq run &>/dev/null
)
@xzipizx
Copy link

xzipizx commented Apr 19, 2015

Great stuff, thanks for sharing. I'm new to Chrome OS and programming, what language is this?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment