[NixOS] Better integration with rumno in brightness.sh

This commit is contained in:
2025-08-14 02:04:57 -06:00
parent 5dc82b90e2
commit 37070171c2

View File

@@ -23,21 +23,19 @@ get_brightness_percentage() {
echo "50" echo "50"
fi fi
else else
# Multiple devices - output each device's brightness # Multiple devices - calculate average brightness
local output="" local total=0
local count=0
for device in $devices; do for device in $devices; do
local info=$(brightnessctl -d "$device" 2>/dev/null | grep -oP '\d+%' | head -1 | tr -d '%') local info=$(brightnessctl -d "$device" 2>/dev/null | grep -oP '\d+%' | head -1 | tr -d '%')
if [ -n "$info" ]; then if [ -n "$info" ]; then
if [ -z "$output" ]; then total=$((total + info))
output="${device}:${info}" count=$((count + 1))
else
output="${output} ${device}:${info}"
fi
fi fi
done done
if [ -n "$output" ]; then if [ "$count" -gt 0 ]; then
echo "$output" echo $((total / count))
else else
echo "50" echo "50"
fi fi
@@ -67,6 +65,36 @@ if [ -n "$ARG" ]; then
for device in $DEVICES; do for device in $DEVICES; do
brightnessctl -d "$device" set "$BRIGHTNESS_CMD" >/dev/null 2>&1 brightnessctl -d "$device" set "$BRIGHTNESS_CMD" >/dev/null 2>&1
done done
# Check if devices have different brightness values and sync them
device_count=$(echo "$DEVICES" | wc -w)
if [ "$device_count" -gt 1 ]; then
# Get all brightness values
max_brightness=0
all_same=true
first_brightness=""
for device in $DEVICES; do
brightness=$(brightnessctl -d "$device" 2>/dev/null | grep -oP '\d+%' | head -1 | tr -d '%')
if [ -n "$brightness" ]; then
if [ -z "$first_brightness" ]; then
first_brightness=$brightness
elif [ "$brightness" != "$first_brightness" ]; then
all_same=false
fi
if [ "$brightness" -gt "$max_brightness" ]; then
max_brightness=$brightness
fi
fi
done
# If not all the same, set them all to the maximum
if [ "$all_same" = false ] && [ "$max_brightness" -gt 0 ]; then
for device in $DEVICES; do
brightnessctl -d "$device" set "${max_brightness}%" >/dev/null 2>&1
done
fi
fi
else else
# Fallback: just run brightnessctl without specifying device # Fallback: just run brightnessctl without specifying device
brightnessctl set "$BRIGHTNESS_CMD" >/dev/null 2>&1 brightnessctl set "$BRIGHTNESS_CMD" >/dev/null 2>&1