Support relative brightness increases/decreases
[khome.git] / home / bin / monitor-brightness
index 70b795d..07b7c49 100755 (executable)
@@ -1,8 +1,11 @@
 #! /bin/bash
 
-error() {
-    printf 'Error: %s\n' "$1" >&2
-    exit 1
+max() {
+    if [[ "$1" -gt "$2" ]]; then echo "$1"; else echo "$2"; fi
+}
+
+min() {
+    if [[ "$1" -lt "$2" ]]; then echo "$1"; else echo "$2"; fi
 }
 
 _get() {
@@ -13,21 +16,17 @@ _set() {
     sudo ddcutil setvcp 10 "$1"
 }
 
-cmd="$1"
-arg="$2"
+args="$*"
 
-case "$cmd" in
+case "$args" 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."
+    i | inc | increase) _set "$(min $(( $(_get) + 5)) 100)";;
+    d | dec | decrease) _set "$(max $(( $(_get) - 5)) 0)";;
+    *)
+        if [[ "$args" =~ ^[0-9]+$ && "$args" -gt -1 && "$args" -lt 101 ]]; then
+            _set "$args"
+        else
+            printf 'Error: expected a numeric argument between 0 and 100, but given "%s"\n' "$args" >&2
+            exit 1
+        fi
 esac
This page took 0.025501 seconds and 4 git commands to generate.