Created by
Sergio Araújo
| #!/usr/bin/env bash
#
# Control the monitor backlight and color temperature
# requires `xbacklight`, `xrandr`, and `redshift`
#
# Author: Dave Eddy <dave@daveeddy.com>
# Date: June 25, 2018
# License: MIT
shopt -s extglob
usage() {
local prog=${0##*/}
cat <<-EOF
Usage: $prog [ bright | dark | brighter | darker | darkest | night | day | [0-9]+ ]
Usage: $prog [ mirror | laptop | hdmi ]
Examples:
# Set output(s)
$prog mirror # mirror display and HDMI
$prog laptop # laptop display only
$prog hdmi # hdmi output only
# Modify color temperature for night (4500k)
$prog night
# Make the screen the darkest it will go
$prog darkest
# Get the current brightness level
$prog get
# Manually set the brightness (out of 100)
$prog 75
EOF
}
case "$1" in
mirror|dual) xrandr --output eDP1 --auto --output HDMI1 --set 'Broadcast RGB' 'Limited 16:235' --auto;;
dock) xrandr --output eDP1 --off --output DP1 --set 'Broadcast RGB' 'Limited 16:235' --auto;;
hdmi|external) xrandr --output eDP1 --off --output HDMI1 --set 'Broadcast RGB' 'Limited 16:235' --auto;;
laptop|builtin) xrandr --output HDMI1 --off --output eDP1 --auto --output DP1 --off;;
brighter) xbacklight + 5;;
darker) xbacklight - 5;;
bright|brightest) xbacklight = 100;;
dark) xbacklight = 1;;
darkest) xbacklight = .1;;
day) redshift -m randr -x;;
night) redshift -m randr -PO 4500;;
nighter) redshift -m randr -PO 3500;;
(+([0-9])) xbacklight = "$1";;
''|get) xbacklight -get;;
-h|help) usage;;
*) usage >&2; exit 1;;
esac
|