Увеличить яркость по значению с помощью xrandr [duplicate]

Итак, у меня есть Alienware 13 R3 с OLED-дисплеем, и я впервые смог изменить яркость с помощью команды xrandr. Проблема заключалась в отсутствии подсветки на OLED-дисплеях, поэтому я не мог изменить яркость с помощью клавиатуры или каким-либо другим способом. Итак, теперь, когда я знаю, что могу это изменить, я хочу поставить привязка клавиш для изменения яркости, скажем, на 0,1. Я использовал эту команду для изменения яркости:

xrandr --output eDP-1-1 --brightness .5

Кто-нибудь знает, какую команду использовать не для установки яркости, а для увеличения или уменьшения ее на какое-то значение , поэтому я могу привязать к нему макрос. Заранее спасибо!

P.S. Я новичок в Linux, поэтому, пожалуйста, не обижайтесь на меня: P

1
задан 11 June 2019 в 19:36

1 ответ

Скопируйте приведенный ниже скрипт bash в файл с именем bright

, а затем отметьте его как chmod a+x bright

Bash Script

#!/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 )
  • Change MON="DP-1-1" на имя вашего монитора, то есть MON="eDP-1-1"
  • Измените STEP=5 на значение вашего шага, например STEP=2 менее заметно

Вызовите скрипт с помощью:

  • bright Up или bright + для увеличения яркости на значение шага
  • bright Down или bright - для уменьшения яркости на значение шага
  • bright (без параметры), чтобы получить текущий уровень яркости

Надеюсь, команды bash / shell можно легко найти для обучения, но если есть вопросы, не стесняйтесь их задавать:)

через 8 минут отправив ответ, он пришёл ко мне, и я мог бы использовать bc для математики с плавающей запятой и сэкономить ~ 10 строк кода и много времени из 1,5 часов, чтобы написать его пожимает плечами .

0
ответ дан 11 June 2019 в 19:36

Другие вопросы по тегам:

Похожие вопросы: