From 8df79b320c4855ec563578c4f895c2eb0317489b Mon Sep 17 00:00:00 2001 From: P. J. McDermott Date: Sat, 19 May 2018 01:37:01 -0400 Subject: bin/bright: New script --- (limited to 'bin') diff --git a/bin/bright b/bin/bright new file mode 100755 index 0000000..04c83f5 --- /dev/null +++ b/bin/bright @@ -0,0 +1,80 @@ +#!/bin/sh + +set -eu + +get_b() +{ + # VCP 10 C 100 100 + read -r vcp feat c val max <<-EOF + $(ddcutil -t getvcp 10) + EOF + + printf '%s' ${val} + return 0 +} + +set_b() +{ + local b=${1} + shift 1 + + ddcutil setvcp 10 ${b} + + return 0 +} + +inc_b() +{ + local d=${1} + shift 1 + local b= + + b=$(($(get_b) + ${d})) + if [ ${b} -gt 100 ]; then + b=100 + elif [ ${b} -lt 0 ]; then + b=0 + fi + + set_b ${b} +} + +usage() +{ + printf 'Usage: %s {|}\n' "${0}" + printf '\n' + printf 'Where is any word beginning with (in any case):\n' + printf ' * "U" for up\n' + printf ' * "D" for down\n' + printf 'And is any integer between 0 and 100 inclusive\n' + + return 0 +} + +main() +{ + local dir= + + if [ ${#} -ne 1 ]; then + usage 1>&2 + return 1 + fi + + dir="${1}" + shift 1 + + case "${dir}" in + [Uu]*) inc_b 20;; + [Dd]*) inc_b -20;; + *[!0-9]* | '') + usage 1>&2 + return 1 + ;; + *) + set_b ${dir} + esac + + return 0 +} + +main "${@}" -- cgit v0.9.1