#!/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 } } } '