ควบคุมความสว่างของจอภาพภายนอกผ่านซอฟต์แวร์


11

สวัสดีชุมชน 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 ในตัว


เมื่อคำสั่งที่คุณระบุใช้งานได้กับจอภาพภายนอกของคุณคุณสามารถตั้งค่าปุ่มลัดแบบกำหนดเองในการตั้งค่าระบบ> แป้นพิมพ์> ทางลัด
tongpu

ถูกต้องแล้วฉันสามารถส่งคำสั่งสองคำ (มืด / สว่าง) และฉันจะเพิกเฉยต่อการเปลี่ยนความสว่างภายในอูบุนตูด้วยภาพเคลื่อนไหวความสว่างที่ดี
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เรียกสคริปต์ไปยังแป้นพิมพ์ลัดบางปุ่มที่คุณเลือกด้วยการตั้งค่าระบบ> คีย์บอร์ด> ทางลัดเช่นแนะนำ fotomonster


หมายเหตุ:
ฉันไม่ทราบว่าddccontrol -pต้องใช้เวลานานเท่าใดถ้ามันยาวเกินไปคุณสามารถเพิ่มsyncตัวเลือกในสคริปต์ซึ่งจะบันทึกค่าความสว่างของจอภาพเป็นไฟล์ จากนั้นแทนที่จะรับความสว่างปัจจุบันจากddccontrolคุณก็สามารถทำได้จากไฟล์ซึ่งควรจะเร็วกว่ามาก แน่นอนคุณจะต้องอัปเดตupและdownโทรเพื่อเขียนความสว่างใหม่ไปยังไฟล์ ...


สคริปต์แรงบันดาลใจจากการโพสต์เกี่ยวกับเรื่องนี้ ArchLinux


ทำงานได้ดีมากขอบคุณมาก นั่นคือสิ่งที่ฉันต้องการ ตอนนี้ทั้งระบบมีการบูรณาการอย่างดีเช่น iMac แต่ยังคงสามารถกำหนดค่าได้
remi

ยังคงต้องการความช่วยเหลือเล็ก ๆ น้อย ๆ ที่มีผลผูกพันสคริปต์เพื่อกุญแจความสว่างของฉัน: askubuntu.com/questions/239560/...
remi
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.