Snippets

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

Comments (0)

HTTPS SSH

You can clone a snippet to your computer for local editing. Learn more.