Không thể điều khiển các màn hình riêng lẻ với xset (và thực sự là X11)
Như tiêu đề cho thấy, không thể vì lý do cách xset
xây dựng và do các chức năng X11 mà nó sử dụng. Nếu chúng ta xem mã nguồn, xset
các cuộc gọi DPMSForceLevel(dpy,DPMSModeSuspend)
( dòng 557 ) và biến hiển thị dpy
xuất phát từ XOpenDisplay()
hàm ( dòng 203 ) và đó là theo định nghĩa :
Một máy chủ, cùng với màn hình và thiết bị đầu vào của nó, được gọi là màn hình.
Nói cách khác, xset
áp dụng các cài đặt trên toàn cầu cho toàn bộ màn hình, không áp dụng cho từng Màn hình. Cần phải thay đổi xset
mã nguồn để làm việc đó. Bản thân các phần mở rộng DPMS dường như chỉ gọi toàn bộ màn hình, không phải màn hình riêng lẻ, do đó thậm chí không thể viết mã tùy chỉnh với thư viện X11.
Kiểm soát thủ công cài đặt đó qua /sys
hệ thống con cũng không hoạt động
$ sudo bash -c 'echo Off > /sys/class/drm/card0-VGA-1/dpms'
[sudo] password for admin:
bash: /sys/class/drm/card0-VGA-1/dpms: Permission denied
Màn hình cũng được đưa ra khỏi chế độ DPMS khi xảy ra sự kiện phím hoặc chuột, do đó, nếu bạn muốn di chuyển chuột hoặc sử dụng bàn phím, một trong những hành động đó sẽ khiến màn hình rời khỏi chế độ DPMS.
Giải pháp thay thế
Giải pháp thay thế tốt nhất (và thực tế là giải pháp hoạt động thể chất) là xrandr
- nó có thể được sử dụng để kiểm soát các "đầu ra" riêng lẻ. Đặc biệt,
xrandr --output VGA-1 -off
sẽ tắt đầu ra đó. Có, bạn đã đề cập rằng bạn không muốn sử dụng giải pháp này vì nó không đủ nhanh, tuy nhiên cho đến nay nó là giải pháp tốt nhất hiện có. Nó có một vài lợi thế:
- miễn dịch với các sự kiện quan trọng và chuột
- kiểm soát độc lập outpus không giống như
xset
Nó xrandr --output VGA-1 --brightness 0.1
sẽ tô màu màn hình theo cách nó xuất hiện, mặc dù --brightness
là một giải pháp phần mềm, vì vậy màn hình không thực sự bị mờ ở cấp độ phần cứng, cũng không bị tắt ở cấp độ phần cứng. Tuy nhiên, nó thực hiện công việc làm trống màn hình và cũng có khả năng chống lại các sự kiện phím / chuột.
Tôi đã xem mã nguồn của trình bảo vệ màn hình Mate và Budgie, cả hai đều là công cụ bảo vệ màn hình Gnome, tuy nhiên trong cả hai trường hợp, chúng dường như là một giải pháp phần mềm, vì không đề cập đến DPMS trong mã nguồn.