Вот код:
#!/bin/bash
blDir='/sys/class/backlight/intel_backlight'
brightness=$(cat $blDir/brightness) # current brightness
max=$(cat $blDir/max_brightness) # maximum brightness
percentage=$(echo "scale=3; ($brightness/$max)*100" | bc | awk '{print int($1+0.5)}')
case $BLOCK_BUTTON in
# brightness up %5
4) echo $(( $brightness + ( $max / 20 ) )) > $blDir/brightness ;;
# brightness down %5
5) echo $(( $brightness - ( $max / 20 ) )) > $blDir/brightness ;;
esac
if (( $percentage >= 5 )); then
# output current brightness
echo "☀ $percentage%"
else
# output '0%' instead of '%'
echo "☀ 0%"
fi
Это скрипт для отображения, и я могу настроить яркость подсветки в строке состояния моего оконного менеджера. Все, что я повторяю из этого скрипта, это то, что появляется в строке состояния. Звездочка в выводе - просто иконка солнца в юникоде. $ BLOCK_BUTTON - это кнопка, которую я нажимаю, когда над ней наведен курсор, где 4 обозначает прокрутку вверх и 5 - прокрутку вниз. Он отображает текущую яркость просто отлично. Всякий раз, когда я прокручиваю вверх, яркость повышается с 0% до 55% в инкрементах по 5%. Затем он достигает 59%, 64%, 69%, 74% и т.д. Почему он это делает? Это какая-то ошибка округления? Как я могу исправить это так, чтобы оно пошло инкрементами от 5% до 100%.