Как изменить яркость ЖК-дисплея из командной строки (или через скрипт)?

141

Чтобы обойти ошибку # 1005495 (изменение яркости ЖК-дисплея через горячие клавиши невозможны), я хотел бы иметь один запрос командной строки для увеличения и один для уменьшения яркости моего ЖК-дисплея. Затем я мог бы сопоставить горячую клавишу для каждого из этих запросов.

Проблема заключается в следующем: я не знаю, как увеличить и уменьшить яркость ЖК-дисплея в командной строке. Вы?

    
задан user69748 10.06.2012 в 19:28
источник

12 ответов

144

еще один способ, которым мы должны это сделать, - это еще одна новая программа, называемая xbacklight, откройте ваш терминал и введите этот

sudo apt-get install xbacklight

, то введите этот xbacklight -set 50

там 50 означает диапазон яркости, мы можем получить его до 100 от 0.

вы также можете увеличить и уменьшить яркость от текущего значения до указанного уровня. Если вы хотите увеличить до 10% от текущего значения яркости, вы можете дать это

xbacklight -inc 10

и для уменьшения 10% вы можете дать это

xbacklight -dec 10 
    
ответ дан rɑːdʒɑ 11.06.2012 в 07:28
133

Откройте терминал и введите этот

xrandr -q | grep " connected"

он даст вам результат как LVDS1 подключен 1680x1050 + 0 + 0 (нормальная левая инвертированная правая ось оси x) 331 мм x 207 мм

Там LVDS1 Стенды для вашего дисплея.

, так что теперь вы должны делать это как

xrandr --output LVDS1 --brightness 0.5

там 0,5 обозначает яркость, и она колеблется от 0.0 до 1.0. 0,0 - > Полный черный. Вы должны выбрать требуемое значение яркости.     

ответ дан rɑːdʒɑ 11.06.2012 в 07:25
85

Для меня работает следующее:

echo 400 > /sys/class/backlight/intel_backlight/brightness

Я думаю, максимально возможное значение находится в файле /sys/class/backlight/intel_backlight/max_brightness .

    
ответ дан palacsint 19.05.2014 в 11:51
12

Для ноутбуков,
sudo setpci -s 00:02.0 F4.B=80

Измените 80 на [0-FF] , чтобы получить самую низкую яркость. Значение указано в шестнадцатеричном формате, поэтому 80 даст вам 50% максимальной яркости.

Для десктопов [не проверено мной],
xgamma -gamma .75

    
ответ дан Gaurav Gandhi 10.06.2012 в 19:37
5

Попробуйте это в терминале:

xrandr --output LVDS1 --brightness 0.9

Вы можете изменить последнее значение по своему усмотрению, например. 0,2

    
ответ дан ripu 23.09.2013 в 00:12
3

Вот короткая строка, которая поможет вам расслабить глаза. Просто создайте crontaab с линией или создайте скрипт

xrandr --output VGA1 --brightness 0.5; sleep 20; xrandr --output VGA1 --brightness 1
    
ответ дан Cristianpark 07.03.2014 в 21:32
3

Сделайте этот скрипт:

set-brightness.sh

#!/bin/bash
TARGET="acpi_video0"
cd /sys/class/backlight
MAX="$(cat "${TARGET}/max_brightness")"
# The '/1' at the end forced bc to cast the result 
# to an integer, even if $1 is a float (which it 
# should be)
LOGIC="$(echo "($1 * ${MAX})/1" | bc)"
for i in */; do
    if [[ "${TARGET}/" != "$i" && -e "${i}brightness" ]]; then
        cat "${i}max_brightness" > "${i}brightness"
    fi
done
echo "$LOGIC" > "${TARGET}/brightness"

Запустите его как root с любым значением от 0 до 1.

sudo ./set-brightness.sh 0.5
  • Если ваша система не имеет /sys/class/backlight/acpi_video0 , там должен быть хотя бы один каталог, который может быть специфичным для устройства (например, у меня также есть radeon_bl0 ).
  • Если у вас есть другие, имейте в виду их стек значений (следовательно, цикл, нажимая все значения other в 1.0), затем задав целевой номер на нужную величину).
  • В то время как acpi_video0 должен всегда работать, он не всегда имеет полный диапазон доступных физических яркостей. Попробуйте каждый из них и используйте ту, которая имеет наибольшую гамму, как ваш «TARGET»
ответ дан Fordi 09.03.2016 в 20:18
2

Как сказал @palacsint, путь echo 244 > /sys/class/backlight/intel_backlight/brightness работает для меня.

Но значения max и min resent в /sys/class/backlight/intel_backlight/max_brightness и /sys/class/backlight/intel_backlight/bl_power файлов соответственно.

Кроме того, фактическая яркость, на которой работает ваш компьютер, присутствует в /sys/class/backlight/intel_backlight/actual_brightness

    
ответ дан user281989 07.12.2014 в 06:59
2

KDE 4.12:

qdbus org.kde.Solid.PowerManagement /org/kde/Solid/PowerManagement/Actions/BrightnessControl setBrightness 55
    
ответ дан int_ua 26.03.2014 в 05:54
2

Используя приведенные выше ответы, я создал этот скрипт (сохраненный в моем домашнем каталоге как bright.sh), чтобы изменить яркость дисплея (поскольку клавиатура ноутбука перенесла пролитую проблему с чаем и стала непригодной для использования). Не стесняйтесь использовать его (если у вас есть назначенные файлы ... в противном случае нужно будет указать, что их изменение будет необходимо).

#!/bin/bash
function main_menu
{
    sudo clear
    cursetting=$(cat /sys/class/backlight/intel_backlight/brightness)
    maxsetting=$(cat /sys/class/backlight/intel_backlight/max_brightness)
    powersave=$((maxsetting/5))
    conservative=$((powersave*2))
    medium=$((powersave*3))
    performance=$((powersave*4))
    echo ""
    echo "----------------------- Brightness -----------------------"
    echo " 1. Set Display to Minimum (Powersave) brightness setting."
    echo " 2. Set Display to Low (Conservative) brightness setting."
    echo " 3. Set Display to Medium brightness setting."
    echo " 4. Set Display to High (Performance) brightness setting."
    echo " 5. Set Display to Maximum brightness setting."
    echo " 6. Exit."
    echo "----------------------------------------------------------"
    if [ $cursetting -eq $powersave ]; then
     cursetting='Minimum'
    else
     if [ $cursetting -eq $conservative ]; then
      cursetting='Conservative'
     else
      if [ $cursetting -eq $medium ]; then
       cursetting='Medium'
      else
       if [ $cursetting -eq $performance ]; then
        cursetting='Performance'
       else
        if [ $cursetting -eq $maxsetting ]; then
         cursetting='Maximum'
        fi
       fi
      fi
     fi
    fi
    echo "        Current Display Setting - "$cursetting;
    choice=7
    echo ""
    echo -e "Please enter your choice: \c"
}

function press_enter
{
    echo ""
    echo -n "Press Enter to continue."
    read
    main_menu
}

main_menu
while [ $choice -eq 7 ]; do
read choice

if [ $choice -eq 1 ]; then
 echo $powersave | sudo tee /sys/class/backlight/intel_backlight/brightness
 main_menu
else
 if [ $choice -eq 2 ]; then
  echo $conservative | sudo tee /sys/class/backlight/intel_backlight/brightness
  main_menu
 else
  if [ $choice -eq 3 ]; then
   echo $medium | sudo tee /sys/class/backlight/intel_backlight/brightness
   main_menu
  else
   if [ $choice -eq 4 ]; then
    echo $performance | sudo tee /sys/class/backlight/intel_backlight/brightness
    main_menu
   else
    if [ $choice -eq 5 ]; then
     echo $maxsetting | sudo tee /sys/class/backlight/intel_backlight/brightness
     main_menu
    else
     if [ $choice -eq 6 ]; then
      exit;
     else
      echo -e "Please enter the NUMBER of your choice: \c"
      choice = 7
     fi
    fi
   fi
  fi
 fi
fi
done
    
ответ дан Aaron Nichols 26.02.2017 в 01:13
1

ddccontrol - еще одна опция для управления подсветкой для внешних мониторов. Здесь я могу настроить подсветку моего внешнего монитора на 50% мощности:

ddccontrol -p -r 0x10 -w 50

Я рассмотрел возможные решения этой проблемы, чтобы улучшить способ Redshift обрабатывает изменения яркости . Благодаря этому я обнаружил, что для улучшения совместимости между устройствами существует набор патчей для ядра Linux , так что ноутбуки и внешние экраны может работать аналогично, через sysfs .

Тем временем, ddccontrol - единственное, что работает для меня здесь. Как обычно, вики Arch содержат хорошую общую документацию по этой теме.

    
ответ дан anarcat 25.01.2018 в 23:14
0

Интерактивный пользовательский интерфейс, похожий на ncurses, с использованием xbacklight

Некреты бедного человека. Hit h , и он падает на 10%, набирает l , и он увеличивается на 10%. Затем покажите текущую яркость.

xback() (
  done=false;
  echo "less: h, more: l, quit: q"
  while ! $done; do
    read -rsn1 key
    if [ "$key" = h ]; then
      xbacklight -dec 10
    elif [ "$key" = l ]; then
      xbacklight -inc 10
    elif [ "$key" = q ]; then
      done=true
    fi
    printf "\r$(xbacklight -get) "
  done
)
    
ответ дан Ciro Santilli 新疆改造中心 六四事件 法轮功 15.11.2017 в 22:40