Il controllo dei singoli monitor non è possibile con xset (e X11 in realtà)
Come suggerisce il titolo, non è possibile per motivi di come xset
è costruito e a causa delle funzioni X11 che utilizza. Se osserviamo il codice sorgente, le xset
chiamate DPMSForceLevel(dpy,DPMSModeSuspend)
( linea 557 ) e la variabile di visualizzazione dpy
proviene dalla XOpenDisplay()
funzione ( linea 203 ), ed è per definizione :
Un server, insieme ai suoi schermi e dispositivi di input, è chiamato display.
In altre parole, xset
applica le impostazioni a livello globale all'intero display, non alle singole schermate. Sarebbe necessario cambiare xset
il codice sorgente affinché funzioni. Le stesse estensioni DPMS sembrano chiamare solo l'intero display, non singole schermate, quindi non è nemmeno possibile scrivere codice personalizzato con la libreria X11.
Anche il controllo manuale di tale impostazione tramite /sys
sottosistema non sembra funzionare
$ 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
Le schermate vengono inoltre eliminate dalla modalità DPMS quando si verificano eventi del tasto o del mouse, pertanto, considerando che è possibile spostare il mouse o utilizzare la tastiera, una di queste azioni farebbe uscire il monitor dalla modalità DPMS.
Soluzioni alternative
La migliore alternativa (e la soluzione effettivamente funzionante) è xrandr
- potrebbe essere utilizzata per controllare i singoli "output". In particolare,
xrandr --output VGA-1 -off
imposterà quell'uscita. Sì, hai detto che non vuoi utilizzare questa soluzione poiché non è abbastanza veloce, tuttavia finora è la migliore disponibile. Ha un paio di vantaggi:
- immune agli eventi chiave e del mouse
- controlla indipendentemente l'outpus diversamente
xset
Il xrandr --output VGA-1 --brightness 0.1
sarà Colorize schermo in modo tale che risulta spento, anche se --brightness
è una soluzione software, quindi il display non è effettivamente inattivo a livello hardware, né è spento a livello hardware. Tuttavia, svolge il compito di oscurare uno schermo ed è anche resistente agli eventi chiave / mouse.
Ho cercato il codice sorgente degli screensaver Mate e Budgie, che sono entrambi fork di screensaver GNOME, tuttavia in entrambi i casi sembrano essere una soluzione software, dal momento che non c'è menzione di DPMS nel codice sorgente.