Mengontrol masing-masing monitor tidak dimungkinkan dengan xset (dan X11 sebenarnya)
Seperti judulnya, tidak mungkin untuk alasan bagaimana xset
dibangun dan karena fungsi X11 yang digunakannya. Jika kita melihat kode sumber, xset
panggilan DPMSForceLevel(dpy,DPMSModeSuspend)
( jalur 557 ), dan variabel tampilan dpy
berasal dari XOpenDisplay()
fungsi ( jalur 203 ), dan itu adalah dengan definisi :
Server, bersama dengan layar dan perangkat inputnya, disebut layar.
Dengan kata lain, xset
terapkan pengaturan secara global ke seluruh tampilan, bukan Layar individual. Ini perlu untuk mengubah xset
kode sumber agar bisa berfungsi. Ekstensi DPMS sendiri sebagian besar tampaknya hanya memanggil seluruh tampilan, bukan layar individual, sehingga bahkan tidak mungkin untuk menulis kode khusus dengan pustaka X11.
Mengontrol pengaturan secara manual melalui /sys
subsistem juga tampaknya tidak berfungsi
$ 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
Layar juga dikeluarkan dari mode DPMS saat peristiwa tombol atau mouse terjadi, jadi mengingat Anda mungkin ingin menggerakkan mouse atau menggunakan keyboard, salah satu tindakan tersebut akan menyebabkan monitor meninggalkan mode DPMS.
Penanganan alternatif
Alternatif terbaik (dan solusi yang secara fisik berfungsi) adalah xrandr
- ini dapat digunakan untuk mengontrol "output" individual. Khususnya,
xrandr --output VGA-1 -off
akan menonaktifkan output itu. Ya, Anda telah menyebutkan bahwa Anda tidak ingin menggunakan solusi ini karena tidak cukup cepat, namun sejauh ini yang terbaik tersedia. Ini memiliki beberapa keunggulan:
- kebal terhadap peristiwa kunci dan mouse
- secara independen mengontrol outpus tidak seperti
xset
The xrandr --output VGA-1 --brightness 0.1
akan mewarnai layar sedemikian rupa sehingga muncul off, meskipun --brightness
adalah solusi perangkat lunak, sehingga layar tidak benar-benar redup di tingkat hardware, juga itu adalah dari pada tingkat hardware. Namun, itu berfungsi mengosongkan layar dan juga tahan terhadap peristiwa tombol / mouse.
Saya telah melihat kode sumber screensaver Mate dan Budgie, yang keduanya adalah garpu screensaver GNOME, namun dalam kedua kasus mereka tampaknya menjadi solusi perangkat lunak, karena tidak ada penyebutan DPMS dalam kode sumber.