Come si fa a sapere se i monitor di un computer sono attivati / disattivati dalla riga di comando in Linux? Ho sempre pensato ai monitor come dispositivi di sola uscita, ma ho notato che la finestra di dialogo Preferenze di Gnome Monitor ha una funzione di "rilevamento monitor". Questo può essere generalizzato per determinare se un monitor è fisicamente spento?Come determinare se il monitor LCD è acceso dalla riga di comando di Linux
risposta
Si potrebbe desiderare di guardare l'output di
$ xset -q
non sono sicuro se funzionerà, ma penso che la linea "Monitor è (on | off)" dovrebbe dirvi la risposta.
mi dà ancora 'Monitor è On' anche quando lo spengo. – Thomas
Ciò potrebbe mostrare solo se il monitor è collegato o meno. Non penso che ci sia un modo per vedere se è effettivamente acceso. Se è collegato, il sistema operativo presuppone che sia acceso. Probabilmente Gnome rileva il monitor solo quando è collegato non quando è acceso/spento. Credo che l'unico modo per provare questo fuori è quello di digitare il comando precedente, scollegare il monitor, premi invio, presa monitorare indietro e vedere cosa dice. Non posso testarlo b/c Sono su un laptop. – avacariu
"Ancora mi dà il controllo è acceso anche quando lo spengo" - come puoi dire? Forse è abbastanza intelligente per tornare indietro e cambiare l'output quando rileva che hai acceso il monitor per controllare. Ora devo solo capire se la luce del frigo _ veramente _ si spegne quando chiudi la porta. – paxdiablo
È possibile ottenere alcune informazioni utilizzando l'utilità della riga di comando xrandr, se il driver video supporta questa estensione.
Sembra darmi la stessa falsa lettura che ottengo da xset. – Cerin
La connessione VESA DDC è una connessione I2C che può essere utilizzata per interrogare la presenza del monitor.
Linux exposes the I2C device e programmi userland possono comunicare direttamente con il monitor con il codice come quella di cui http://jaffar.cs.msu.su/oleg/ddcci/
Avviso questo qui sotto: Control 0xe1: +/1/1 [SAM: Power control (0 - off/1 - on)]
# ddcci-tool /dev/i2c-2 -e -c -d
ddcci-tool version 0.03
Reading EDID : [email protected]/dev/i2c-2
Plug and Play ID: SAM00BA
Input type: Analog
Using ddc/ci : [email protected]/dev/i2c-2
Capabilities:
(type(LCD)vcp(04 05 10 12 60(1 3) B0(1 2) B6 C6 C8 C9 D6(1 4) DC(1 2 3 4) DF))
Controls (valid/current/max):
Control 0x04: +/0/1 [Reset Factory Defaults]
Control 0x05: +/0/1 [SAM: Reset Brightness and Contrast]
Control 0x06: +/0/1 [Reset Factory Geometry]
Control 0x08: +/0/1 [Reset Factory Default Color]
Control 0x0e: +/60/120 [SAM: Image Lock Coarse]
Control 0x10: +/0/100 [Brightness]
Control 0x12: +/50/100 [Contrast]
Control 0x16: +/8/16 [Red Video Gain]
Control 0x18: +/8/16 [Green Video Gain]
Control 0x1a: +/8/16 [Blue Video Gain]
Control 0x1e: +/0/2 [SAM: Auto Size Center]
Control 0x20: +/50/100 [Horizontal Position]
Control 0x30: +/25/54 [Vertical Position]
Control 0x3e: +/39/50 [SAM: Image Lock Fine]
Control 0x60: +/1/3 [Input Source Select]
Control 0x62: +/0/100 [Audio Speaker Volume Adjust]
Control 0x6c: +/140/255 [Red Video Black Level]
Control 0x6e: +/127/255 [Green Video Black Level]
Control 0x70: +/121/255 [Blue Video Black Level]
Control 0xb0: +/0/2 [Settings]
Control 0xb6: +/3/8 [???]
Control 0xc6: +/1/1 [???]
Control 0xc8: +/5/16 [???]
Control 0xc9: +/1/0 [???]
Control 0xca: +/2/2 [On Screen Display]
Control 0xcc: +/2/11 [SAM: On Screen Display Language]
Control 0xd6: +/1/4 [SAM: DPMS control (1 - on/4 - stby)]
Control 0xdc: +/4/4 [SAM: MagicBright (1 - text/2 - internet/3 - entertain/4 - custom)]
Control 0xdf: +/512/0 [VCP Version]
Control 0xe0: +/0/2 [SAM: Color preset (0 - normal/1 - warm/2 - cool)]
Control 0xe1: +/1/1 [SAM: Power control (0 - off/1 - on)]
Control 0xe2: +/0/1 [???]
Control 0xed: +/108/255 [SAM: Red Video Black Level]
Control 0xee: +/101/255 [SAM: Green Video Black Level]
Control 0xef: +/103/255 [SAM: Blue Video Black Level]
Una questione interessante è se il monitor restituisce quel pezzo di dati, e in caso contrario, se risponde a tutti se è attualmente spento.
Lo fa. È anche possibile accendere e spegnere il monitor dalla riga di comando. –
DDCCI è ora ddccontrol: http://sourceforge.net/projects/ddccontrol/ Come ha detto Eren, lo fa, e si può anche farlo da soli con ', errori ddccontrol -r 0xE1 -w 0' – domen
per il mio caso ddccontrol fuori (si lamenta del fatto che il monitor non sia supportato) quando il monitor è acceso e connesso, ma ddccontrol è silenzioso quando non è connesso o è spento. Sto ancora cercando un metodo per determinare se il monitor (TV) è su un altro ingresso però. Ma questo è probabilmente al di là di ciò che è fattibile. Inoltre, per ottenere questo correre sotto Ubuntu 12.04 si veda qui: http://www.techytalk.info/ubuntu/ddccontrol/ e probabilmente bisogno di fare un 'sudo modprobe i2c-dev' per farlo funzionare –
Quando si utilizza xset ritorna sempre xset: incapace di aprire visualizzazione ""
Tuttavia, "xset DPMS forza off" & "xset dpms forza off" comandi in realtà girare il mio monitor e spegnendo. Sto usando lo script delineato qui -
http://systembash.com/content/how-to-turn-off-your-monitor-via-command-line-in-ubuntu/
Da systembash.com, ecco il codice preso dal link, nel caso sarà giù qualche giorno:
#!/bin/bash
export DISPLAY=:0.0
if [ $# -eq 0 ]; then
echo usage: $(basename $0) "on|off|status"
exit 1
fi
if [ $1 = "off" ]; then
echo -en "Turning monitor off..."
xset dpms force off
echo -en "done.\nCheck:"
xset -q|grep "Monitor is"
elif [ $1 = "on" ]; then
echo -en "Turning monitor on..."
xset dpms force on
echo -en "done.\nCheck:"
xset -q|grep "Monitor is"
elif [ $1 = "status" ]; then
xset -q|sed -ne 's/^[ ]*Monitor is //p'
else
echo usage: $(basename $0) "on|off|status"
fi
Non tutti i monitor supportano VESA DDC. La cosa potrebbe essere ancora più complicata se usi un dock.
D'altra parte, c'è un modo per verificare se le tue azioni vengono rilevate monitorando gli eventi kernel/udev. A tale scopo, per Fedora e RHEL, tipo seguente comando:
sudo udevadm monitor --property
verrà visualizzato ogni kernel e udev eventi ha rilevato. Da ciò si può provare a scollegare/scollegare il cavo dati del monitor; collegare/scollegare il cavo di alimentazione del monitor; attivare gli stati di stand-by/on premendo il pulsante di accensione.
Se nessun output viene generato dopo un'azione, il sistema non può rilevarlo.
xset -q
è la strada da percorrere per un pi greco di lamponi. Un controllo per vedere se la risposta contiene "Monitor attivo" è un ottimo modo per usare un pin gpio per spegnere una retroilluminazione LCD;
if(runOSCommand("xset -q").contains("Monitor is On")){
System.out.println("Monitor is On");
if screenLight.isHigh()) {
screenLight.low();
}
}else{
System.out.println("Monitor is Off");
if (screenLight.isLow()) {
screenLight.high();
}
}
public static String runOSCommand(String command){
String s = null;
String string = "";
Process p;
try {
p = Runtime.getRuntime().exec(command);
BufferedReader br = new BufferedReader(
new InputStreamReader(p.getInputStream()));
while ((s = br.readLine()) != null){
// System.out.println("line: " + s);
string += s;
}
p.waitFor();
// System.out.println ("exit: " + p.exitValue());
p.destroy();
} catch (Exception e) {}
return string;
}
- 1. Rileva se il monitor è acceso dalla modalità IE Kiosk
- 2. Come determinare se un artefatto di Maven è nel mio repo dalla riga di comando?
- 3. Compilare il programma IOS dalla riga di comando linux
- 4. Generazione di uno sha256 dalla riga di comando di Linux
- 5. Verificare se .NET è installato dalla riga di comando
- 6. * sulla riga di comando linux
- 7. Input dalla riga di comando
- 8. Aggiornamento dipendenze compositore dalla riga di comando
- 9. Come usare jarjar dalla riga di comando?
- 10. Come chiudere Rserve dalla riga di comando
- 11. Resharpening dalla riga di comando
- 12. Come ottenere il titolo della schermata di linux dalla riga di comando
- 13. È possibile ottenere il nome utente dalla riga di comando
- 14. Come compilare l'APK dalla riga di comando?
- 15. Come eseguire TestNG dalla riga di comando
- 16. Come generare Javadoc dalla riga di comando
- 17. Come modificare il livello di log dalla riga di comando?
- 18. Come aggiornare xcode dalla riga di comando
- 19. Come inviare un messaggio di Facebook dalla console di linux (riga di comando)
- 20. Come configurare il proxy HTTP SVN dalla riga di comando?
- 21. Utilizzo di sendmail dalla riga di comando
- 22. Fake socket.io connection dalla riga di comando
- 23. Come si imposta il fuso orario dalla riga di comando?
- 24. Come convalido il mio file YAML dalla riga di comando?
- 25. Come posso eseguire il profiler dalla riga di comando?
- 26. Ignora macro dalla riga di comando
- 27. Perforce auto resolve dalla riga di comando?
- 28. Avvio dell'emulazione Chrome dalla riga di comando
- 29. Come posso verificare se un modulo Perl è installato sul mio sistema dalla riga di comando?
- 30. Come verificare se è stato impostato un argomento dalla riga di comando?
'echo 'Veloce!Premere un tasto se si vede questa :-) ' ' – paxdiablo
Anche se non è tecnicamente 'dalla riga di comando', c'è uno script python [Su questa domanda SO] (http://stackoverflow.com/questions/10400236/how-to- osservare-cambiamenti-in-connessi-monitor-via-xlib), che fa il trucco ben – Barton