Контроль яркости внешнего монитора через программное обеспечение

10

Привет, сообщество 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.

    
задан remi 23.11.2012 в 09:42
источник

1 ответ

6

Я не думаю, что ваше желаемое решение получить внешний монитор в /sys/class/backlight будет работать, но хорошая новость заключается в том, что вы можете иметь приятную анимацию яркости!

Try

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]*\),.*//')
#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 .

    
ответ дан Gerhard Burger 10.01.2013 в 11:25
источник