Можно ли управлять яркостью на втором мониторе?

У меня есть ThinkPad (x301) с внешним монитором, подключенным через кабель DisplayPort к HDMI. Я могу управлять яркостью монитора ноутбука, используя клавиши на ноутбуке, но не могу понять, как управлять яркостью внешнего монитора.

$ ls /sys/class/backlight/*/brightness
/sys/class/backlight/acpi_video0/brightness
/sys/class/backlight/intel_backlight/brightness
$ cat /sys/class/backlight/acpi_video0/brightness
11
$ cat /sys/class/backlight/acpi_video0/max_brightness
15
$ cat /sys/class/backlight/intel_backlight/brightness
501804
$ cat /sys/class/backlight/intel_backlight/max_brightness
2414340

Я могу записать значения в вышеприведенное , и как intel_backlight, так и acpi_video0 изменяют яркость монитора ноутбука.

Означает ли вышесказанное, что нет способа изменить яркость внешнего монитора (кроме экранного меню)?

25
задан 13 April 2017 в 15:25

5 ответов

Установите Контроллер яркости Install brightness-controller из Центра программного обеспечения Ubuntu. Если он недоступен, загрузите файл .deb .

Screenshot 1

Теперь вы можете регулировать яркость с помощью ползунка.

0
ответ дан 13 April 2017 в 15:25

Вы можете сделать это из командной строки (и, следовательно, делать это автоматически каждый вечер через cron), используя xrandr, как описано в . Как изменить яркость ЖК-дисплея из командной строки (или через скрипт)?

Например,

xrandr --output HDMI1 --brightness 0.5

Это не меняет подсветку и не влияет на энергопотребление, оно просто регулирует значение гаммы в программном обеспечении . Я слышал, что Brightness Controller использует xrandr в своей оболочке GUI.

Используйте xrandr --listactivemonitors, чтобы получить правильный монитор, если нет, вы, вероятно, получите xrandr: Need crtc to set gamma on..

ddccontrol был в Lucid 10.04 и, кажется, работал хорошо, но Debian был осиротевшим из-за отсутствия интереса и с тех пор никем не был подхвачен.

Обновление ddccontrol снова в ксениале. См.

0
ответ дан 13 April 2017 в 15:25

Дополнительная информация: я использую ЭЛТ-монитор. - Нилверт Новал 11 марта 2011 года в 17: 06Похоже, что невозможно управлять внешними мониторами с помощью /sys/class/backlight. Но существует приложение под названием ddccontrol , которое может контролировать яркость вашего внешнего монитора.

Инструкции по использованию интерфейса командной строки доступны здесь здесь .

Как правило, вам нужно проверить наличие доступных мониторов и элементов управления, используя ddccontrol -p, найти адрес элемента управления, который вы хотите получить, и затем установить значение, используя ddccontrol -p -r 0x10 -w 70.

0
ответ дан 13 April 2017 в 15:25

Вот последняя информация для контроллера яркости. Существует 2 доступные версии. Версия 1 иначе простая версия позволяет поддержку максимум 4 мониторов и поддерживает классические ползунки. Версия 2 допускает более специализированное управление, а также несколько мониторов.

Можно проверить их обоих здесь Контроллер Яркости

Поскольку более быстрая установка использует PPA

sudo add-apt-repository ppa:apandada1/brightness-controller
sudo apt-get update

Затем для версии 1

sudo apt-get install brightness-controller-simple

Brightness Controller Simple

Или для версии 2

sudo apt-get install brightness-controller

Brightness Controller

Приятного отдыха!

2
ответ дан 13 April 2017 в 15:25

Я предлагаю использовать простой bash-скрипт для регулировки яркости вашего монитора вверх или вниз на один шаг

Скопируйте bash-скрипт ниже в файл (имя не важно, главное, чтобы так как название не похоже на другие терминалы). Я назову его brightness_ext

.Затем пометьте его как исполняемый с помощью chmod a+x яркость_ext

скрипт 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 ]] && MathBright="$Left"00          # 1.0 becomes "100"
[[ "${#Right}" -eq 1 ]] && Right="$Right"0          # 0.5 becomes "50"
MathBright=$(( MathBright + Right ))
[[ "$Right" == 050 ]] && MathBright=5  # if we wanna decrease below 10%
[[ "$CurrBright" == 0.0 ]] && MathBright=5 # we can't go below 0, cause it is negative then

[[ "$1" == "Up" || "$1" == "+" ]] && MathBright=$(( MathBright + STEP ))
[[ "$1" == "Down" || "$1" == "-" ]] && MathBright=$(( MathBright - STEP ))
[[ "$MathBright" -gt 100  ]] && MathBright=100      # Can't go over 1.00

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}"
    [[ "$MathBright" == 5000 ]] && CurrBright=.05
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=" eDP-1-1"

  • Измените STEP=5 на значение вашего шага, например, STEP=2 менее заметен

Использование

brightness_ext + для увеличения яркости; brightness_ext - уменьшить, довольно просто

Также предлагаю вам создать ярлыки для этих команд, так как ими гораздо удобнее пользоваться. Лично я сделал ярлыки яркости для обоих своих мониторов.

0
ответ дан 19 July 2020 в 14:16

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

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