misc_status_check.sh 1.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667
  1. #!/bin/bash
  2. ## This is my (demuredemeanor) polybar script for checking miscellaneous statuses.
  3. ## Checks:
  4. ## gpg key/smartcard cached
  5. ## screen lock - xss-lock running
  6. ## powersave state
  7. ## vpn state
  8. ## Possible PragmataPro icons
  9. ## VPN icon:      
  10. ## screen lock icon:         
  11. ## powersave icon:       
  12. ## Initialize variable
  13. STATUS=""
  14. ### Check Statuses ### {{{
  15. ## GPG key/smartcard cache state. 1 indicates a key is cached (1 tested for).
  16. STATUS_GPG="$({ gpg-connect-agent 'keyinfo --list' /bye 2>/dev/null; gpg-connect-agent 'scd getinfo card_list' /bye 2>/dev/null; } | awk 'BEGIN{CH=0} /^S/ {if($7==1){CH=1}; if($2=="SERIALNO"){CH=1}} END{if($0!=""){print CH} else {print "none"}}')"
  17. ## Checks if xss-lock is running. 0 indicates not running (0 tested for).
  18. STATUS_LOCK="$(pgrep -c xss-lock)"
  19. ## Powersave state. 0 indicates disabled (0 tested for). Disabling helps with dock and speakers.
  20. STATUS_PS="$(xset -q | awk '/DPMS is/ {if($3=="Disabled"){print 0}else{print 1}}')"
  21. ## openvpn check. 1 indicates running (1 tested for).
  22. STATUS_VPN="$(pgrep -c openvpn)"
  23. ### End Check Statuses ### }}}
  24. ### Set Icons ### {{{
  25. ## Note: GPG is first and always shown.
  26. ## Items after GPG prepend a space
  27. ## Set GPG icon
  28. if [ $STATUS_GPG -eq 1 ];then
  29. #STATUS+=""
  30. STATUS+=""
  31. else
  32. STATUS+=""
  33. fi
  34. ## Set lock icon
  35. if [ $STATUS_LOCK -eq 0 ];then
  36. #STATUS+=""
  37. STATUS+=""
  38. fi
  39. ## Set powersave icon
  40. if [ $STATUS_PS -eq 0 ];then
  41. STATUS+=""
  42. fi
  43. ## Set VPN icon
  44. if [ $STATUS_VPN -eq 1 ];then
  45. STATUS+=""
  46. fi
  47. ### End Set Icons ### }}}
  48. ## Return results
  49. echo "${STATUS}"