Управление яркостью внешнего монитора с помощью программного обеспечения
Привет сообщество Ubuntu,
Я могу управлять яркостью моего DELL U2713HM, подключенного к DisplayPort, с помощью команды:
ddccontrol -p -r 0x10 -w 53
где в этом примере число 53 представляет уровень яркости (диапазон от 0 до 100). Но я не знаю, как связать команду с клавишами яркости на клавиатуре.
Я уже искал, но только нашел ответы на встроенные экраны ноутбуков. В /sys/class/backlight
это папка acpi_video0
с некоторыми подпапками и файлами. Файл actual_brightness содержит число от 0 до 20, которое меняется при нажатии клавиш яркости.
Как вывести мой внешний монитор в список устройств в / sys / class / backlight?
PS: У меня установлена новая версия Ubuntu 12.10 с интегрированной графикой Intel HD4000.
1 ответ
Я не думаю, что ваше желаемое решение получить ваш внешний монитор в /sys/class/backlight
будет работать, но хорошая новость в том, что у вас может быть хорошая анимация яркости!
Пытаться
notify-send " " -i notification-display-brightness-low -h int:value:50 -h string:x-canonical-private-synchronous:brightness &
Теперь мы можем создать скрипт, который имитирует изменение яркости в Ubuntu:
#!/bin/bash
#get current brightness
presbright=$(ddccontrol -p | grep -A1 0x10 | tr -d '\n\t' | sed 's/.*value=\([^a-zA-Z]*\),.*/\1/')
#stepsize for the brightness change
stepsize=10
case "$1" in
up)
newbright=$(( ${presbright}+${stepsize} ))
newbright=$(echo $newbright | awk '{if($1 < 100){if($1 > 0) print $1; else print 0;} else print 100;}')
notify-send " " -i notification-display-brightness-low -h int:value:$newbright -h string:x-canonical-private-synchronous:brightness &
ddccontrol -p -r 0x10 -w $newbright
;;
down)
newbright=$(( ${presbright}-${stepsize} ))
newbright=$(echo $newbright | awk '{if($1 < 100){if($1 > 0) print $1; else print 0;} else print 100;}')
notify-send " " -i notification-display-brightness-low -h int:value:$newbright -h string:x-canonical-private-synchronous:brightness &
ddccontrol -p -r 0x10 -w $newbright
;;
status)
echo $presbright
;;
*)
echo "Accepted arguments are: up, down, status."
;;
esac
exit 0
Как вы можете видеть, он фиксирует значения от 0 до 100. Теперь вы можете связать up
а также down
вызывает сценарий для некоторых сочетаний клавиш по вашему выбору с помощью Системных настроек> Клавиатура> Сочетания клавиш, как предложено fotomonster.
Заметки:
Я не знаю сколько времени ddccontrol -p
занимает, если это слишком долго, вы также можете добавить sync
опция для скрипта, которая сохраняет значение яркости монитора в файл. Тогда вместо получения текущей яркости от ddccontrol
вы можете просто получить его из вашего файла, который должен быть намного быстрее. Конечно, вам нужно обновить up
а также down
призывает записать новую яркость в файл...
Сценарий, вдохновленный этим постом на archlinux.