[NixOS] Better integration with rumno in brightness.sh
This commit is contained in:
@@ -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
|
||||||
|
|||||||
Reference in New Issue
Block a user