Kiểm soát độ sáng màn hình ngoài thông qua phần mềm


10

Xin chào cộng đồng Ubuntu,

Tôi có thể kiểm soát độ sáng của DELL U2713HM được kết nối với DisplayPort thông qua lệnh:

ddccontrol -p -r 0x10 -w 53

trong ví dụ này, số 53 biểu thị mức độ sáng (phạm vi từ 0 đến 100). Nhưng tôi không biết làm thế nào để liên kết lệnh với các phím sáng trên bàn phím.

Tôi đã tìm kiếm, nhưng chỉ tìm thấy câu trả lời cho màn hình máy tính xách tay tích hợp. Trong /sys/class/backlightlà thư mục acpi_video0với một số thư mục con và tập tin. Tệp fact_brightness chứa một số từ 0 đến 20, thay đổi khi tôi nhấn các phím độ sáng.

Làm cách nào để màn hình ngoài của tôi được liệt kê dưới dạng thiết bị trong / sys / class / đèn nền?

PS: Tôi đang chạy bản cài đặt Ubuntu 12.10 mới với đồ họa tích hợp Intel HD4000.


Khi lệnh bạn cung cấp hoạt động cho màn hình ngoài, bạn có thể đặt các phím tắt tùy chỉnh trong Cài đặt hệ thống> Bàn phím> Phím tắt.
tongpu

Điều đó là chính xác, nhưng sau đó tôi chỉ có thể gửi hai lệnh (tối / sáng) và tôi sẽ bỏ qua bộ thay đổi độ sáng bên trong Ubuntu với hình ảnh động độ sáng đẹp.
remi

Bạn có thể đăng một liên kết với đầu ra không ddccontrol -p, tôi đang nghĩ đến một giải pháp ...
Gerhard Burger

Hy vọng đây là bất kỳ sự giúp đỡ nào cho bạn: pastebin.com/L7Y7pRZe
remi

Câu trả lời:


6

Tôi không nghĩ rằng giải pháp mong muốn của bạn là đưa màn hình ngoài của bạn vào /sys/class/backlighthoạt động, nhưng tin tốt là bạn có thể có hình ảnh động sáng đẹp!

Thử

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

Bây giờ chúng ta có thể tạo một tập lệnh mô phỏng bộ thay đổi độ sáng của 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

Như bạn có thể thấy nó kẹp các giá trị trong khoảng từ 0 đến 100. Bây giờ bạn có thể liên kết updowngọi các tập lệnh với một số phím tắt mà bạn chọn với Cài đặt hệ thống> Bàn phím> Phím tắt , như đề xuất của fotomonster.


Lưu ý:
Tôi không biết mất bao nhiêu thời gian ddccontrol -p, nếu quá dài, bạn cũng có thể thêm synctùy chọn vào tập lệnh để lưu giá trị độ sáng của màn hình vào một tệp. Sau đó, thay vì nhận được độ sáng hiện tại từ ddccontrolbạn có thể chỉ cần lấy nó từ tệp của bạn, sẽ nhanh hơn nhiều. Tất nhiên, bạn sẽ cần cập nhật updowngọi để ghi độ sáng mới vào tệp ...


kịch bản lấy cảm hứng từ bài đăng này trên archlinux .


làm việc rất tốt, cảm ơn bạn rất nhiều Đó chính xác là những gì tôi muốn. Bây giờ toàn bộ hệ thống được tích hợp tốt, giống như iMac, nhưng vẫn có thể cấu hình.
remi

Vẫn cần một chút giúp đỡ, liên kết các kịch bản để chìa khóa sáng của tôi: askubuntu.com/questions/239560/...
remi
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.