Итак, у меня Alienware 13 R3 с OLED-дисплеем, и впервые я смог изменить яркость с помощью команды xrandr. Проблема была в отсутствии подсветки в OLED-дисплеях, поэтому я не мог изменить яркость ни с помощью клавиатуры, ни каким-либо другим способом. Так что теперь, когда я знаю, что могу это изменить, я хочу назначить клавишу для изменения яркости, скажем, на 0,1. Я использовал эту команду для изменения яркости:
xrandr --output eDP-1-1 --brightness .5
Кто-нибудь знает, какую команду использовать, чтобы не устанавливать яркость, а увеличивать или уменьшать ее на какое-то значение, чтобы можно было привязать к ней макрос. Заранее спасибо!
P.S. Я полный новичок в Linux, так что, пожалуйста, не ругайте меня :P
решение1
Скопируйте скрипт bash ниже в файл с именемbright
Затем отметьте его как исполняемый с помощьюchmod a+x bright
Скрипт Bash
#!/bin/bash
MON="DP-1-1" # Discover monitor name with: xrandr | grep " connected"
STEP=5 # Step Up/Down brightnes by: 5 = ".05", 10 = ".10", etc.
CurrBright=$( xrandr --verbose --current | grep ^"$MON" -A5 | tail -n1 )
CurrBright="${CurrBright##* }" # Get brightness level with decimal place
Left=${CurrBright%%"."*} # Extract left of decimal point
Right=${CurrBright#*"."} # Extract right of decimal point
MathBright="0"
[[ "$Left" != 0 && "$STEP" -lt 10 ]] && STEP=10 # > 1.0, only .1 works
[[ "$Left" != 0 ]] && MathBright="$Left"00 # 1.0 becomes "100"
[[ "${#Right}" -eq 1 ]] && Right="$Right"0 # 0.5 becomes "50"
MathBright=$(( MathBright + Right ))
[[ "$1" == "Up" || "$1" == "+" ]] && MathBright=$(( MathBright + STEP ))
[[ "$1" == "Down" || "$1" == "-" ]] && MathBright=$(( MathBright - STEP ))
[[ "${MathBright:0:1}" == "-" ]] && MathBright=0 # Negative not allowed
[[ "$MathBright" -gt 999 ]] && MathBright=999 # Can't go over 9.99
if [[ "${#MathBright}" -eq 3 ]] ; then
MathBright="$MathBright"000 # Pad with lots of zeros
CurrBright="${MathBright:0:1}.${MathBright:1:2}"
else
MathBright="$MathBright"000 # Pad with lots of zeros
CurrBright=".${MathBright:0:2}"
fi
xrandr --output "$MON" --brightness "$CurrBright" # Set new brightness
# Display current brightness
printf "Monitor $MON "
echo $( xrandr --verbose --current | grep ^"$MON" -A5 | tail -n1 )
- Измените
MON="DP-1-1"
на имя вашего монитора, напримерMON="HDMI-1"
- Узнайте имена своих мониторов с помощью
xrandr | grep " connected"
- Измените
STEP=5
значение шага, например,STEP=2
оно станет менее заметным
Вызовите скрипт с помощью:
bright Up
илиbright +
для увеличения яркости на шагbright Down
илиbright -
для уменьшения яркости на шагbright
(без параметров) для получения текущего уровня яркости
Надеюсь, команды bash / shell можно легко найти в Google для обучения, но если у вас есть вопросы, не стесняйтесь спрашивать :)
Через 8 минут после публикации ответа мне пришло в голову, что я мог бы использовать его bc
для математики с плавающей точкой и сэкономить около 10 строк кода и кучу времени с 1,5 часов, потраченных на его написаниепожимает плечами.