diff options
author | Benedikt Peetz <benedikt.peetz@b-peetz.de> | 2024-05-23 13:26:22 +0200 |
---|---|---|
committer | Benedikt Peetz <benedikt.peetz@b-peetz.de> | 2024-05-23 13:26:22 +0200 |
commit | 204731c0a69136c9cebcb54f1afecf5145e26bbe (patch) | |
tree | fc9132e5dc74e4a8e1327cdd411839a90f9410aa /pkgs/by-name/br/brightness/brightness.sh | |
parent | refactor(sys): Modularize and move to `modules/system` or `pkgs` (diff) | |
download | nixos-config-204731c0a69136c9cebcb54f1afecf5145e26bbe.tar.gz nixos-config-204731c0a69136c9cebcb54f1afecf5145e26bbe.zip |
refactor(pkgs): Categorize into `by-name` shards
This might not be the perfect way to organize a package set -- especially if the set is not nearly the size of nixpkgs -- but it is _at_ least a way of organization.
Diffstat (limited to 'pkgs/by-name/br/brightness/brightness.sh')
-rwxr-xr-x | pkgs/by-name/br/brightness/brightness.sh | 80 |
1 files changed, 80 insertions, 0 deletions
diff --git a/pkgs/by-name/br/brightness/brightness.sh b/pkgs/by-name/br/brightness/brightness.sh new file mode 100755 index 00000000..a7272279 --- /dev/null +++ b/pkgs/by-name/br/brightness/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 |