backlight.sh 2.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586
  1. #!/usr/bin/env bash
  2. ## Author : Aditya Shakya
  3. ## Mail : adi1090x@gmail.com
  4. ## Github : @adi1090x
  5. ## Twitter : @adi1090x
  6. style="$($HOME/.config/rofi/applets/menu/style.sh)"
  7. dir="$HOME/.config/rofi/applets/menu/configs/$style"
  8. rofi_command="rofi -theme $dir/backlight.rasi"
  9. # Error msg
  10. msg() {
  11. rofi -theme "$HOME/.config/rofi/applets/styles/message.rasi" -e "$1"
  12. }
  13. ## Get Brightness
  14. if [[ -f /bin/brightnessctl ]]; then
  15. BNESS="$(brightnessctl get)"
  16. MAX="$(brightnessctl max)"
  17. PERC="$((BNESS*100/MAX))"
  18. BLIGHT=${PERC%.*}
  19. elif [[ -f /usr/bin/blight ]]; then
  20. DEVICE=$(ls /sys/class/backlight | head -n 1)
  21. BNESS="$(blight -d $DEVICE get brightness)"
  22. PERC="$(($BNESS*100/255))"
  23. BLIGHT=${PERC%.*}
  24. elif [[ -f /usr/bin/xbacklight ]]; then
  25. VAR="$(xbacklight -get)"
  26. BLIGHT="$(printf "%.0f\n" "$VAR")"
  27. else
  28. msg "No suitable backlight utility found!"
  29. exit 1
  30. fi
  31. if [[ $BLIGHT -ge 1 ]] && [[ $BLIGHT -le 29 ]]; then
  32. MSG="Low"
  33. elif [[ $BLIGHT -ge 30 ]] && [[ $BLIGHT -le 49 ]]; then
  34. MSG="Optimal"
  35. elif [[ $BLIGHT -ge 50 ]] && [[ $BLIGHT -le 69 ]]; then
  36. MSG="High"
  37. elif [[ $BLIGHT -ge 70 ]] && [[ $BLIGHT -le 99 ]]; then
  38. MSG="Too Much"
  39. fi
  40. ## Icons
  41. ICON_UP=""
  42. ICON_DOWN=""
  43. ICON_OPT=""
  44. notify="notify-send -u low -t 1500"
  45. options="$ICON_UP\n$ICON_OPT\n$ICON_DOWN"
  46. ## Main
  47. chosen="$(echo -e "$options" | $rofi_command -p "$BLIGHT% : $MSG" -dmenu -selected-row 1)"
  48. case $chosen in
  49. "$ICON_UP")
  50. if [[ -f /bin/brightnessctl ]]; then
  51. brightnessctl -q set +10% && $notify "Brightness Up $ICON_UP"
  52. elif [[ -f /usr/bin/blight ]]; then
  53. blight -d "$DEVICE" set +10% && $notify "Brightness Up $ICON_UP"
  54. elif [[ -f /usr/bin/xbacklight ]]; then
  55. xbacklight -inc 10 && $notify "Brightness Up $ICON_UP"
  56. fi
  57. ;;
  58. "$ICON_DOWN")
  59. if [[ -f /bin/brightnessctl ]]; then
  60. brightnessctl -q set 10%- && $notify "Brightness Down $ICON_DOWN"
  61. elif [[ -f /usr/bin/blight ]]; then
  62. blight -d "$DEVICE" set -10% && $notify "Brightness Down $ICON_DOWN"
  63. elif [[ -f /usr/bin/xbacklight ]]; then
  64. xbacklight -dec 10 && $notify "Brightness Down $ICON_DOWN"
  65. fi
  66. ;;
  67. "$ICON_OPT")
  68. if [[ -f /bin/brightnessctl ]]; then
  69. brightnessctl -q set 25% && $notify "Optimal Brightness $ICON_OPT"
  70. elif [[ -f /usr/bin/blight ]]; then
  71. blight -d "$DEVICE" set 25% && $notify "Optimal Brightness $ICON_OPT"
  72. elif [[ -f /usr/bin/xbacklight ]]; then
  73. xbacklight -set 30 && $notify "Optimal Brightness $ICON_OPT"
  74. fi
  75. ;;
  76. esac