Kontrol kecerahan monitor eksternal melalui perangkat lunak

10

Halo komunitas Ubuntu,

Saya dapat mengontrol kecerahan DELL U2713HM saya yang terhubung dengan DisplayPort melalui perintah:

ddccontrol -p -r 0x10 -w 53

di mana dalam contoh ini angka 53 mewakili tingkat kecerahan (kisaran 0 hingga 100). Tapi saya tidak tahu bagaimana menautkan perintah ke tombol kecerahan di keyboard saya.

Saya sudah mencari, tetapi baru menemukan jawaban untuk layar laptop terintegrasi. In /sys/class/backlightadalah folder acpi_video0dengan beberapa subfolder dan file. File actual_brightness berisi angka dari 0 hingga 20, yang berubah ketika saya menekan tombol kecerahan.

Bagaimana cara mendapatkan monitor eksternal saya terdaftar sebagai perangkat di / sys / class / backlight?

PS: Saya menjalankan instalasi baru Ubuntu 12.10 dengan grafis terintegrasi Intel HD4000.

Remi
sumber
Ketika perintah yang Anda berikan berfungsi untuk monitor eksternal Anda, Anda dapat mengatur tombol pintasan khusus di Pengaturan Sistem> Keyboard> Pintasan.
tongpu
Itu benar, tetapi kemudian saya hanya dapat mengirim dua perintah (gelap / cerah) dan saya akan mengabaikan pengubah kecerahan internal Ubuntu dengan animasi kecerahan yang bagus.
remi
Bisakah Anda memposting tautan dengan output dari ddccontrol -p, Saya sedang memikirkan solusi ...
Gerhard Burger
Semoga ini bisa membantu Anda: pastebin.com/L7Y7pRZe
remi

Jawaban:

6

Saya tidak berpikir solusi yang Anda inginkan untuk mendapatkan monitor eksternal Anda /sys/class/backlightakan bekerja, tetapi kabar baiknya adalah Anda dapat memiliki animasi kecerahan yang bagus!

Mencoba

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

Sekarang kita dapat membuat skrip yang mensimulasikan pengubah kecerahan 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

Seperti yang Anda lihat, klem nilai antara 0 dan 100. Sekarang Anda dapat mengikat updan downmemanggil skrip ke beberapa pintasan keyboard pilihan Anda dengan System Settings> Keyboard> Shortcuts , seperti yang disarankan fotomonster.


Catatan:
Saya tidak tahu berapa lama waktu yang ddccontrol -pdibutuhkan, jika terlalu lama Anda juga dapat menambahkan syncopsi ke skrip yang menyimpan nilai kecerahan monitor ke file. Maka alih-alih mendapatkan kecerahan saat ini dari ddccontrolAnda cukup mendapatkannya dari file Anda, yang seharusnya jauh lebih cepat. Tentu saja Anda perlu memperbarui updan downpanggilan untuk menulis kecerahan baru ke file ...


skrip terinspirasi oleh posting ini di archlinux .

Gerhard Burger
sumber
bekerja dengan sangat baik, terima kasih banyak. Itulah yang saya inginkan. Sekarang seluruh sistem terintegrasi dengan baik, seperti iMac, tetapi masih dapat dikonfigurasi.
Remi
Masih butuh sedikit bantuan, mengikat skrip ke tombol kecerahan saya: askubuntu.com/questions/239560/…
remi