Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #!/bin/zsh
- # author: milomouse
- # NOTE: change brightness of certain laptop monitors,
- # storing values in plain text for adjustments.
- output='sudo setpci -s 00:02.0 F4.B='
- config=${XDG_CONFIG_DIR:-$HOME/.config}/.brightness
- [[ -f $config ]] || print $output\FF > $config
- current=${${$(<$config)[5]}[-2,-1]//=}
- argument="5"
- brightness_down() {
- if [ $current -le 5 &>/dev/null ]; then exit
- elif [ $current = FF ]; then NEW=95
- else NEW=$(($current - $argument)); fi
- print $output$NEW > $config && . $config
- }
- brightness_up() {
- if [ $current = FF ]; then exit
- elif [ $current -ge 95 &>/dev/null ]; then NEW=FF
- else NEW=$(($current + $argument)); fi
- print $output$NEW > $config && . $config
- }
- brightness_max() {
- NEW=FF
- print $output$NEW > $config && . $config
- }
- brightness_set() {
- NEW=$1
- if [ $NEW -lt 5 &>/dev/null ]; then NEW=5
- elif [ $NEW -ge 95 &>/dev/null ]; then NEW=FF
- elif [ $(($NEW % 5)) -gt 0 ]; then
- NEW=$(($(($NEW / 5)) * 5)); fi
- print $output$NEW > $config && . $config
- }
- reassert() { . $config }
- help() {
- << EOF
- usage: moodlight [OPTION]
- OPTIONS:
- -i|--increase Brighten the screen.
- -d|--decrease Dim the screen.
- -m|--max Set brightness to max.
- -s|--set n Set brightness level to n.
- -r|--reassert Execute last brightness level.
- This is useful for startup.
- -h|--help Show this help message.
- EOF
- }
- case "$1" in
- '-i'|'--increase') brightness_up ;;
- '-d'|'--decrease') brightness_down ;;
- '-m'|'--max') brightness_max ;;
- '-s'|'--set') brightness_set ${${@:/$1}[1]} ;;
- '-r'|'--reassert') reassert ;;
- '-h'|'--help'|*) help ;;
- esac
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement