baraction.sh 1.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485
  1. #!/bin/sh
  2. panelfifo=/tmp/panel
  3. rm -f $panelfifo
  4. mkfifo $panelfifo
  5. sound(){
  6. while true; do
  7. volume="$(amixer get Master | grep -Eo '[0-9]{1,3}%')"
  8. echo "V$volume"
  9. sleep 1
  10. done
  11. }
  12. load_avg(){
  13. while true; do
  14. awk '{print "L"$1" "$2" "$3}' /proc/loadavg
  15. sleep 1
  16. done
  17. }
  18. bttry(){
  19. while true; do
  20. battery="$(acpi | awk -vFS=', ' '/Discharging/{stat="-"} /Charging/{stat="+"} {print stat$2}' )"
  21. case "$battery" in
  22. -15%) sct 2000 > /dev/null ;;
  23. -10%) sct 1500 > /dev/null ;;
  24. -7%) sct 1000 > /dev/null ;;
  25. -5%) doas pm-hibernate ;;
  26. esac
  27. echo "B$battery"
  28. sleep 5
  29. done
  30. }
  31. memory(){
  32. while true; do
  33. free | awk '/Mem/{printf("R%.2f%%\n", $3/$2 * 100.0)}'
  34. sleep 2
  35. done
  36. }
  37. curdate(){
  38. while true; do
  39. date "+D%A %d.%m.%y %H:%M"
  40. sleep 60
  41. done
  42. }
  43. mails(){
  44. while sleep 30; do
  45. emails=""
  46. for i; do
  47. mailcount="$(ls -1 "$HOME/.mutt/mailbox/$i/inbox/new" | wc -l)"
  48. [ "$mailcount" != "0" ] && emails=$emails"$i-$mailcount"
  49. done
  50. [ "$emails" != "" ] && echo "m$emails" || echo m0
  51. done
  52. }
  53. bargen(){
  54. pad=" | "
  55. while read -r line; do
  56. case $line in
  57. B*) battery="B:${line#?}";;
  58. D*) cal="${line#?}";;
  59. L*) load="${line#?}";;
  60. m0) mails="";;
  61. m*) mails="M:${line#?}$pad";;
  62. R*) ram="R:${line#?}";;
  63. V*) volume="V:${line#?}";;
  64. X*) mus="${line#?}";;
  65. esac
  66. echo "${mus}${pad}${mails}${load}${pad}${ram}${pad}${volume}${pad}${battery}${pad}${cal}"
  67. done
  68. }
  69. corona > $panelfifo &
  70. sound > $panelfifo &
  71. load_avg > $panelfifo &
  72. bttry > $panelfifo &
  73. memory > $panelfifo &
  74. curdate > $panelfifo &
  75. mails uni personal dataswamp > $panelfifo &
  76. bargen < $panelfifo