commit 8a0ee06ba48c4dccd5d9705b44e0287727310110
parent c6dc5f11bd42edc9e0aa386ffe78b2a71e854f9f
Author: ccx <ccx@te2000.cz>
Date: Fri, 7 Jun 2024 20:13:42 +0000
Add brightness login capability
Diffstat:
1 file changed, 34 insertions(+), 0 deletions(-)
diff --git a/sbin/login.capability.brightness b/sbin/login.capability.brightness
@@ -0,0 +1,34 @@
+#!/bin/zsh
+setopt no_unset warn_create_global extended_glob
+
+typeset -g backlight /sys/class/backlight/amdgpu_bl0
+
+adjust-brightness() {
+ awk >$backlight/brightness \
+ -v adjustment=$1 \
+ -v max=$(<$backlight/max_brightness) \
+ -v current=$(<$backlight/brightness) \
+ 'BEGIN {
+ if(match(adjustment, /^\+[0-9]+%$/)) {
+ adjustment = substr(adjustment, 2, RLENGTH - 2)
+ adjustment = current + adjustment * 0.01 * max
+ } else if(match(adjustment, /^-[0-9]+%$/)) {
+ adjustment = substr(adjustment, 2, RLENGTH - 2)
+ adjustment = current - adjustment * 0.01 * max
+ } else if(match(adjustment, /^[0-9]+%$/)) {
+ adjustment = substr(adjustment, 1, RLENGTH - 1)
+ adjustment = adjustment * 0.01 * max
+ } else if(match(adjustment, /^\+[0-9]+$/)) {
+ adjustment = substr(adjustment, 2)
+ adjustment = current + adjustment
+ } else if(match(adjustment, /^-[0-9]+$/)) {
+ adjustment = substr(adjustment, 2)
+ adjustment = current - adjustment
+ }
+ adjustment = adjustment < 0 ? 0 : ( adjustment > max ? max : adjustment )
+ printf ("%d\n", adjustment)
+ }'
+}
+
+adjust-brightness $1
+# vim: ft=zsh noet ts=4 sts=4 sw=4