Guest User

thinkpadindicator.sh

a guest
Jul 20th, 2018
338
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Bash 2.55 KB | None | 0 0
  1. #!/bin/bash
  2. #author: Cristiano Ricci ([email protected])
  3.  
  4. #usefull variables
  5. parseme="$(sudo tlp-stat -b)";
  6. BAT0=$(echo "$parseme" | grep -i "BAT0/power_now" | grep -o "[[:digit:]]\+ "); BAT0=$(awk -v BAT0=$BAT0 'BEGIN { print (BAT0 / 1000) }');
  7. NRG0FULL=$(echo "$parseme" | grep "/sys/class/power_supply/BAT0/energy_full " | grep -o "[[:digit:]]\+ " ); NRG0NOW=$(sudo tlp-stat | grep "/sys/class/power_supply/BAT0/energy_now" | grep -o "[[:digit:]]\+ " );  BAT0PERC=$(awk -v NRG0FULL=$NRG0FULL -v NRG0NOW=$NRG0NOW 'BEGIN { printf "%.0f", (NRG0NOW / NRG0FULL) * 100 }');
  8. BAT1=$(echo "$parseme" | grep -i "BAT1/power_now" | grep -o "[[:digit:]]\+ "); BAT1=$(awk -v BAT1=$BAT1 'BEGIN { print (BAT1 / 1000) }');
  9. NRG1FULL=$(echo "$parseme" | grep "/sys/class/power_supply/BAT1/energy_full " | grep -o "[[:digit:]]\+ " ); NRG1NOW=$(sudo tlp-stat | grep "/sys/class/power_supply/BAT1/energy_now" | grep -o "[[:digit:]]\+ " );  BAT1PERC=$(awk -v NRG1FULL=$NRG1FULL -v NRG1NOW=$NRG1NOW 'BEGIN { printf "%.0f", (NRG1NOW / NRG1FULL) * 100 }');
  10. BAT0T=$(echo "$parseme" | grep tpacpi-bat.BAT0.startThreshold | grep -o "[[:digit:]][[:digit:]]");
  11. BAT1T=$(echo "$parseme" | grep tpacpi-bat.BAT1.startThreshold | grep -o "[[:digit:]][[:digit:]]");
  12. NRG0NOW=$(echo "$parseme" | grep "/sys/class/power_supply/BAT0/energy_now" | grep -o "[[:digit:]]\+ " );
  13. NRG1NOW=$(echo "$parseme" | grep "/sys/class/power_supply/BAT1/energy_now" | grep -o "[[:digit:]]\+ " );
  14.  
  15. #detect charging status, 1 if charging, 0 if discharging
  16. (acpi | grep "Discharging") >> /dev/null;
  17. charging=$?;
  18.  
  19. #TimeRemaining cmd
  20. if [ "$charging" -eq "1" ]; then
  21.     TIMEREMAINING=$(awk -v NRG1FULL=$NRG1FULL -v NRG1NOW=$NRG1NOW -v NRG0FULL=$NRG0FULL -v NRG0NOW=$NRG0NOW -v BAT0=$BAT0 -v BAT0T=$BAT0T -v BAT1=$BAT1 -v BAT1T=$BAT1T 'BEGIN { printf "%.0f", ((BAT1T / 100 * NRG1FULL)  - NRG1NOW + (BAT0T / 100 * NRG0FULL)  - NRG0NOW) / ((BAT0+BAT1) * 1000) * 60 }');
  22. else
  23.     TIMEREMAINING=$(awk -v NRG1NOW=$NRG1NOW -v NRG0NOW=$NRG0NOW -v BAT0=$BAT0 -v BAT1=$BAT1 'BEGIN { printf "%.0f", (NRG1NOW + NRG0NOW) / ((BAT0+BAT1) * 1000) * 60 }');
  24. fi
  25.  
  26. #single line output
  27. echo -n $(
  28. echo "Fan: ";
  29. #fan
  30. sensors | grep fan1 | grep -o "[[:digit:]]\+ RPM";
  31. echo " - Int: "
  32. #internal
  33. echo $BAT0\W;
  34. echo " - ";
  35. #internal percentage
  36. echo $BAT0PERC%;
  37. echo " - Ext: "
  38. #external
  39. echo $BAT1\W;
  40. echo " - ";
  41. #external percentage
  42. echo $BAT1PERC%;
  43. echo " - TimeRemaining:";
  44. #time remaining
  45. echo $TIMEREMAINING m;
  46. echo " - CpuTemp: "
  47. #temp acpi
  48. acpi -t | grep -o "[[:digit:]][[:digit:]].[[:digit:]]"; echo "°c";
  49. ) #end single line
Advertisement
Add Comment
Please, Sign In to add comment