Advertisement
Guest User

moodlight (laptop display adjuster)

a guest
Jun 26th, 2011
142
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Bash 1.67 KB | None | 0 0
  1. #!/bin/zsh
  2. # author: milomouse
  3. # NOTE: change brightness of certain laptop monitors,
  4. #       storing values in plain text for adjustments.
  5.  
  6. output='sudo setpci -s 00:02.0 F4.B='
  7. config=${XDG_CONFIG_DIR:-$HOME/.config}/.brightness
  8. [[ -f $config ]] || print $output\FF > $config
  9. current=${${$(<$config)[5]}[-2,-1]//=}
  10. argument="5"
  11.  
  12. brightness_down() {
  13.   if [ $current -le 5 &>/dev/null ]; then exit
  14.   elif [ $current = FF ]; then NEW=95
  15.   else NEW=$(($current - $argument)); fi
  16.   print $output$NEW > $config && . $config
  17. }
  18.  
  19. brightness_up() {
  20.   if [ $current = FF ]; then exit
  21.   elif [ $current -ge 95 &>/dev/null ]; then NEW=FF
  22.   else NEW=$(($current + $argument)); fi
  23.   print $output$NEW > $config && . $config
  24. }
  25.  
  26. brightness_max() {
  27.   NEW=FF
  28.   print $output$NEW > $config && . $config
  29. }
  30.  
  31. brightness_set() {
  32.   NEW=$1
  33.   if [ $NEW -lt 5 &>/dev/null ]; then NEW=5
  34.   elif [ $NEW -ge 95 &>/dev/null ]; then NEW=FF
  35.   elif [ $(($NEW % 5)) -gt 0 ]; then
  36.     NEW=$(($(($NEW / 5)) * 5)); fi
  37.   print $output$NEW > $config && . $config
  38. }
  39.  
  40. reassert() { . $config }
  41.  
  42. help() {
  43. << EOF
  44. usage: moodlight [OPTION]
  45. OPTIONS:
  46.    -i|--increase  Brighten the screen.
  47.    -d|--decrease  Dim the screen.
  48.    -m|--max       Set brightness to max.
  49.    -s|--set n     Set brightness level to n.
  50.    -r|--reassert  Execute last brightness level.
  51.                   This is useful for startup.
  52.    -h|--help      Show this help message.
  53. EOF
  54. }
  55.  
  56. case "$1" in
  57.   '-i'|'--increase') brightness_up ;;
  58.   '-d'|'--decrease') brightness_down ;;
  59.   '-m'|'--max') brightness_max ;;
  60.   '-s'|'--set') brightness_set ${${@:/$1}[1]} ;;
  61.   '-r'|'--reassert') reassert ;;
  62.   '-h'|'--help'|*) help ;;
  63. esac
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement