Advertisement
Vilsol

KEYBOARD LED

Dec 26th, 2014
294
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Bash 1.37 KB | None | 0 0
  1. #!/bin/bash
  2.  
  3. if [ "$(id -u)" != "0" ]; then
  4.    echo "This script must be run as root" 1>&2
  5.    exit 1
  6. fi
  7.  
  8. function setBrightness {
  9.     su -c 'echo '$1' > '$B
  10. }
  11.  
  12. function setAll {
  13.     su -c 'echo '$1' > '$L
  14.     su -c 'echo '$1' > '$R
  15.     su -c 'echo '$1' > '$M
  16. }
  17.  
  18. function getRandomColor {
  19.     colors="111
  20.     100
  21.     010
  22.     001
  23.     101
  24.     110
  25.     011"
  26.  
  27.     color=($colors)
  28.  
  29.     num_colors=${#color[*]}
  30.  
  31.     echo "${color[$((RANDOM%num_colors))]}"
  32. }
  33.  
  34. L="/sys/devices/platform/clevo_wmi/kbled/left"
  35. M="/sys/devices/platform/clevo_wmi/kbled/middle"
  36. R="/sys/devices/platform/clevo_wmi/kbled/right"
  37. B="/sys/devices/platform/clevo_wmi/kbled/brightness"
  38.  
  39. LAST=0
  40.  
  41. while true
  42. do
  43.     VOL=$(parec --device=1 --latency=1 --channels=16 | od -N2 -td2 | head -n1 | cut -d' ' -f2- | tr -d ' ' | perl -pe 's/^-//')
  44.     MUL=$(printf "%.0f" $(echo "$(printf "%.0f" $(echo "($VOL/16000.0)*10" | bc -l)) * 1.0" | bc))
  45.    
  46.     if [ "$MUL" == "0" ];
  47.     then
  48.         MUL=1
  49.     fi
  50.  
  51.     TOOLARGE=$(echo "10 < $MUL" | bc)
  52.     if [ "$TOOLARGE" == "1" ];
  53.     then
  54.         MUL=10
  55.     fi
  56.  
  57.     EQUAL=$(echo "$MUL==$LAST" | bc)
  58.  
  59.     if [ "$EQUAL" == "0" ];
  60.     then
  61.         echo $MUL
  62.  
  63.         setBrightness $MUL &
  64.  
  65.         LARGER=$(echo "7 < $MUL" | bc)
  66.  
  67.         if [ "$LARGER" == "1" ];
  68.         then
  69.             PREVPF=$(echo "7     < $LAST" | bc)
  70.             if [ "$PREVPF" == "0" ];
  71.             then
  72.                 C=$(getRandomColor)
  73.  
  74.                 setAll "$C" &
  75.  
  76.                 sudo k "$C" "$C" "$C" &
  77.             fi
  78.         fi
  79.  
  80.         LAST=$MUL
  81.     fi
  82. done
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement