about summary refs log tree commit diff stats
path: root/pkgs/sources/scripts/source/small_functions/brightness.sh
diff options
context:
space:
mode:
authorBenedikt Peetz <benedikt.peetz@b-peetz.de>2024-05-20 16:10:21 +0200
committerBenedikt Peetz <benedikt.peetz@b-peetz.de>2024-05-20 16:14:26 +0200
commit368cb6b0d25db2ae23be42ad51584de059997e51 (patch)
tree3282e45d3ebced63c8498a47e83a255c35de620b /pkgs/sources/scripts/source/small_functions/brightness.sh
parentrefactor(hm): Rename to `modules/home` (diff)
downloadnixos-config-368cb6b0d25db2ae23be42ad51584de059997e51.tar.gz
nixos-config-368cb6b0d25db2ae23be42ad51584de059997e51.zip
refactor(sys): Modularize and move to `modules/system` or `pkgs`
Diffstat (limited to 'pkgs/sources/scripts/source/small_functions/brightness.sh')
-rwxr-xr-xpkgs/sources/scripts/source/small_functions/brightness.sh80
1 files changed, 80 insertions, 0 deletions
diff --git a/pkgs/sources/scripts/source/small_functions/brightness.sh b/pkgs/sources/scripts/source/small_functions/brightness.sh
new file mode 100755
index 00000000..a7272279
--- /dev/null
+++ b/pkgs/sources/scripts/source/small_functions/brightness.sh
@@ -0,0 +1,80 @@
+#!/usr/bin/env dash
+
+# shellcheck source=/dev/null
+SHELL_LIBRARY_VERSION="2.1.2" . %SHELL_LIBRARY_PATH
+
+help() {
+    cat <<EOF
+This is a system brightness manager
+
+USAGE:
+    $NAME up [VALUE] | down [VALUE]
+
+OPTIONS:
+    --help   | -h
+                                Output this help and exit.
+
+    --version   | -v
+                                Output the version and exit.
+
+COMMANDS:
+    up [VALUE]
+                                Increase the brightness by VALUE or 5%.
+
+    down [VALUE]
+                                Decrease the brightness by VALUE or 5%.
+
+ARGUMENTS:
+    VALUE := [[seq 0 100]]
+                                The amount to increase/decrease the brightness. In percentage
+EOF
+}
+
+BACKLIGHT="/sys/class/%BACKLIGHT_NAME"
+
+brightness() {
+    offset="$1"
+
+    max="$(cat $BACKLIGHT/max_brightness)"
+    cur="$(cat $BACKLIGHT/brightness)"
+    percentage="$(echo | awk --assign=cur="$cur" --assign=max="$max" '{printf cur / max}')"
+
+    new="$(echo | awk --assign=per="$percentage" --assign=offset="$offset" '{printf per + (offset / 10)}')"
+
+    output="$(echo | awk --assign=new="$new" --assign=max="$max" '{printf max * new}')"
+
+    msg "echo \"$output\" > $BACKLIGHT/brightness"
+}
+
+for arg in "$@"; do
+    case "$arg" in
+    "--help" | "-h")
+        help
+        exit 0
+        ;;
+    "--version" | "-v")
+        version
+        exit 0
+        ;;
+    esac
+done
+
+case "$1" in
+"up")
+    shift 1
+    value="5"
+    [ -n "$1" ] && value="$1"
+    brightness "+$value"
+    ;;
+"down")
+    shift 1
+    value="-5"
+    [ -n "$1" ] && value="$1"
+    brightness "-$value"
+    ;;
+*)
+    die "The command '$1' does not exist! See '--help' for a list"
+    ;;
+esac
+
+# vim: ft=sh