Kontroluj jasność monitora zewnętrznego za pomocą oprogramowania

11

Witaj społeczność Ubuntu,

Mogę kontrolować jasność mojego DELL U2713HM połączonego z DisplayPort za pomocą polecenia:

ddccontrol -p -r 0x10 -w 53

gdzie w tym przykładzie liczba 53 reprezentuje poziom jasności (zakres od 0 do 100). Ale nie wiem, jak połączyć polecenie z klawiszami jasności na klawiaturze.

Już szukałem, ale znalazłem odpowiedzi na zintegrowane ekrany laptopów. W /sys/class/backlightjest folder acpi_video0z niektórymi podfolderami i plikami. Plik faktyczna_jasność zawiera liczbę od 0 do 20, która zmienia się po naciśnięciu klawiszy jasności.

Jak mogę wyświetlić mój monitor zewnętrzny jako urządzenie w / sys / class / backlight?

PS: Korzystam z nowej instalacji Ubuntu 12.10 ze zintegrowaną kartą graficzną Intel HD4000.

remi
źródło
Gdy podane polecenie działa na monitorze zewnętrznym, możesz ustawić niestandardowe klawisze skrótów w Ustawieniach systemu> Klawiatura> Skróty.
tongpu
To prawda, ale wtedy mogę po prostu wysłać dwa polecenia (ciemny / jasny) i zignorować wewnętrzny zmieniacz jasności Ubuntu z ładną animacją jasności.
rem
Czy możesz zamieścić link z wyjściem ddccontrol -p, Myślę o rozwiązaniu ...
Gerhard Burger
Mam nadzieję, że to ci pomoże: pastebin.com/L7Y7pRZe
rem

Odpowiedzi:

6

Nie wydaje mi się, żeby twoje pożądane rozwiązanie wprowadzenia zewnętrznego monitora /sys/class/backlightdziałało, ale dobra wiadomość jest taka, że ​​możesz mieć ładną animację jasności!

Próbować

notify-send " " -i notification-display-brightness-low -h int:value:50 -h string:x-canonical-private-synchronous:brightness &

Teraz możemy stworzyć skrypt symulujący zmieniacz jasności 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

Jak widać, zaciska wartości od 0 do 100. Teraz możesz powiązać wywołania upi downdo skryptu z wybranymi skrótami klawiaturowymi, wybierając Ustawienia systemowe> Klawiatura> Skróty , jak sugeruje to fotomonster.


Uwagi:
Nie wiem, ile czasu ddccontrol -pzajmuje, jeśli jest za długi, możesz również dodać syncopcję do skryptu, która zapisuje wartość jasności monitora w pliku. Następnie zamiast ddccontrolpobierać bieżącą jasność , możesz po prostu pobrać ją z pliku, co powinno być znacznie szybsze. Oczywiście musisz zaktualizować upi downwezwania, aby zapisać nową jasność do pliku ...


skrypt zainspirowany tym postem na archlinux .

Gerhard Burger
źródło
działa bardzo dobrze, dziękuję bardzo. Właśnie tego chciałem. Teraz cały system jest dobrze zintegrowany, podobnie jak iMac, ale nadal można go konfigurować.
rem
Jeszcze trzeba trochę pomóc, oprawa skrypt do moich kluczy Jasność: askubuntu.com/questions/239560/...
remi