Керуйте яскравістю зовнішнього монітора за допомогою програмного забезпечення


11

Привіт, спільнота Ubuntu,

Я можу керувати яскравістю свого DELL U2713HM, пов'язаного з DisplayPort, за допомогою команди:

ddccontrol -p -r 0x10 -w 53

де в цьому прикладі число 53 представляє рівень яскравості (діапазон від 0 до 100). Але я не знаю, як зв’язати команду з клавішами яскравості на клавіатурі.

Я вже шукав, але просто знайшов відповіді на інтегрованих екранах ноутбуків. У /sys/class/backlightпапці acpi_video0є деякі підпапки та файли. Файл фактична яскравість містить число від 0 до 20, яке змінюється, коли я натискаю клавіші яскравості.

Як я можу внести до списку зовнішній монітор як пристрій у / sys / class / backlight?

PS: Я працюю на свіжій установці Ubuntu 12.10 з вбудованою графікою Intel HD4000.


Коли команда, яку ви надали, працює для вашого зовнішнього монітора, ви можете встановити спеціальні клавіші швидкого доступу в Налаштуваннях системи> Клавіатура> Швидкі клавіші.
tongpu

Це правильно, але тоді я можу просто надіслати дві команди (темно / яскраво), і я проігнорував би внутрішній змінник яскравості Ubuntu за допомогою приємної анімації яскравості.
remi

Чи можете ви опублікувати посилання з результатами ddccontrol -p, я думаю про рішення ...
Герхард Бургер

Сподіваюся, це допоможе вам: pastebin.com/L7Y7pRZe
remi

Відповіді:


6

Я не думаю, що ваше бажане рішення щодо залучення зовнішнього монітора /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виклики до сценарію до деяких комбінацій клавіш за вашим вибором за допомогою Налаштування системи> Клавіатура> Швидкі клавіші , як пропонує фотомонстр.


Примітки:
Я не знаю, скільки часу ddccontrol -pзаймає, якщо він занадто довгий, ви також можете додати syncпараметр до сценарію, який зберігає значення яскравості монітора у файл. Тоді замість отримання поточної яскравості ddccontrolможна просто отримати її з вашого файлу, який повинен бути набагато швидшим. Звичайно, вам потрібно буде оновити upта downзакликати написати нову яскравість у файл ...


скрипт, натхненний цією публікацією на archlinux .


працює дуже добре, дуже дякую Саме цього я хотів. Тепер вся система добре інтегрована, як iMac, але все ще налаштована.
remi

Ще потрібна невелика допомога, прив’язуючи сценарій до моїх клавіш яскравості: askubuntu.com/questions/239560/…
remi
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.