--- /dev/null
+#! /bin/bash
+
+error() {
+ printf 'Error: %s\n' "$1" >&2
+ exit 1
+}
+
+_get() {
+ sudo ddcutil getvcp 10 | grep -o ' current value = \+[0-9]\+' | awk '{print $4}'
+}
+
+_set() {
+ sudo ddcutil setvcp 10 "$1"
+}
+
+cmd="$1"
+arg="$2"
+
+case "$cmd" in
+ '') _get;;
+ get) _get;;
+ set)
+ case "$arg" in
+ '') error 'expected a numeric argument between 0 and 100, given nothing!';;
+ *)
+ if [[ "$arg" =~ ^[0-9]+$ && "$arg" -gt -1 && "$arg" -lt 101 ]]; then
+ _set "$arg"
+ else
+ error "expected a numeric argument between 0 and 100, but given '$arg'"
+ fi
+ esac;;
+ *) error "unrecognized command: $cmd. Expect either get or set."
+esac