Use percentage-based step for keyboard backlight brightness (#5135)

This commit is contained in:
Federico Sapuppo
2026-04-01 18:04:38 +02:00
committed by GitHub
parent e0fed4a9f7
commit 729c590236
+9 -4
View File
@@ -23,14 +23,19 @@ fi
max_brightness="$(brightnessctl -d "$device" max)"
current_brightness="$(brightnessctl -d "$device" get)"
# Calculate step as one unit (keyboards typically have discrete levels like 0-3).
# Calculate step as 10% of max brightness. Keyboards with many levels (e.g. 512)
# need larger steps; keyboards with few levels (e.g. 3) fall back to step=1.
step=$(( max_brightness / 10 ))
(( step < 1 )) && step=1
if [[ $direction == "cycle" ]]; then
new_brightness=$(( (current_brightness + 1) % (max_brightness + 1) ))
new_brightness=$(( current_brightness + step ))
(( new_brightness > max_brightness )) && new_brightness=0
elif [[ $direction == "up" ]]; then
new_brightness=$((current_brightness + 1))
new_brightness=$(( current_brightness + step ))
(( new_brightness > max_brightness )) && new_brightness=$max_brightness
else
new_brightness=$((current_brightness - 1))
new_brightness=$(( current_brightness - step ))
(( new_brightness < 0 )) && new_brightness=0
fi