56 lines
1.6 KiB
Bash
Executable File
56 lines
1.6 KiB
Bash
Executable File
#!/bin/bash
|
|
|
|
DIR="/sys/class/backlight"
|
|
[[ "$BLOCK_INSTANCE" =~ "color" ]] && COLORS=True
|
|
[[ "$BLOCK_INSTANCE" =~ "long" || "$BLOCK_BUTTON" == 1 ]] && LONG=True
|
|
|
|
if [[ -d "$DIR/acpi_video0" ]]; then
|
|
DIR="$DIR/acpi_video0"
|
|
elif [[ -d "$DIR/intel_backlight" ]]; then
|
|
DIR="$DIR/intel_backlight"
|
|
else
|
|
printf "no backlight\nn/a\n"
|
|
exit 33
|
|
fi
|
|
|
|
BAR=("▁" "▂" "▃" "▄" "▅" "▆" "▇" "█")
|
|
COLOR=("#64bc01" "#77a601" "#8a9101" "#9d7b00" "#b06701" "#c45100" "#d63c00" "#e92700")
|
|
BW=("#565656" "#6d6d6d" "#848485" "#9c9c9c" "#b1b1b1" "#c7c7c7" "#dcdcdc" "#f5f5f6")
|
|
|
|
cat "$DIR/brightness" "$DIR/max_brightness" | gawk -v BAR="${BAR[*]}" -v COLOR="${COLOR[*]}" -v BW="${BW[*]}" -v COLORS="$COLORS" -v LONG="$LONG" '
|
|
|
|
BEGIN {
|
|
split(BAR, bar, / /)
|
|
split(COLOR, color, / /)
|
|
split(BW, bw, / /)
|
|
interval = 100 / length(bar)
|
|
}
|
|
|
|
NR == 1 { current_brightness = $1 }
|
|
NR == 2 { maximum_brightness = $1 }
|
|
|
|
END {
|
|
brightness = ( current_brightness / maximum_brightness ) * 100
|
|
if (LONG) {
|
|
printf("%d%\n%d\n", brightness, brightness)
|
|
} else {
|
|
for (i in bar) {
|
|
if (brightness <= i * interval) {
|
|
printf("%s\n%s\n", bar[i], bar[i])
|
|
break
|
|
}
|
|
}
|
|
}
|
|
for (i in bw) {
|
|
if (brightness <= i * interval) {
|
|
if (COLORS) {
|
|
printf("%s\n", color[i])
|
|
} else {
|
|
printf("%s\n", bw[i])
|
|
}
|
|
break
|
|
}
|
|
}
|
|
}
|
|
'
|