¿Cómo sabe si los monitores de una computadora se encienden/apagan desde la línea de comandos en Linux? Tradicionalmente, he pensado en los monitores como dispositivos de solo salida, pero me he dado cuenta de que el cuadro de diálogo Preferencias del monitor Gnome tiene una función de "detectar monitor". ¿Se puede generalizar para determinar si un monitor está físicamente apagado?Cómo determinar si el monitor LCD está encendido desde la línea de comandos de Linux
Respuesta
Es posible que desee ver en la salida del
$ xset -q
No estoy seguro de si va a trabajar, pero creo que la línea de "Monitor es (on | off)" debería decir la respuesta.
Aún me da 'Monitor is On 'incluso cuando lo apago. – Thomas
Eso podría mostrar si el monitor está enchufado o no. No creo que haya una manera de ver si realmente está encendido. Si está conectado, el sistema operativo asume que está encendido. Gnome probablemente solo detecta el monitor cuando está conectado, no cuando está encendido/apagado. Supongo que la única forma de probar esto es escribir el comando anterior, desenchufar el monitor, presionar enter, conectar el monitor y ver lo que dice. No puedo probar este b/c estoy en una computadora portátil. – avacariu
"Todavía me da Monitor está encendido incluso cuando lo apago" - ¿Cómo puede saberlo? Tal vez sea lo suficientemente inteligente como para volver atrás y cambiar la salida cuando detecta que ha activado el monitor para verificar. Ahora solo tengo que averiguar si la luz del refrigerador se apaga realmente cuando cierra la puerta. – paxdiablo
Puede obtener información utilizando la utilidad de línea de comandos xrandr, si su controlador de video admite esta extensión.
Parece que me da la misma lectura falsa que recibo de xset. – Cerin
La conexión VESA DDC es una conexión I2C que se puede utilizar para consultar la presencia del monitor.
Linux exposes the I2C device y programas de espacio de usuario pueden comunicarse directamente con el monitor con código como el que es http://jaffar.cs.msu.su/oleg/ddcci/
cuenta de esto a continuación: 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 cuestión interesante es si o no su monitor vuelve ese pedazo de datos, y si no, si responde en absoluto si está actualmente desactivado.
Lo hace. Incluso es posible encender y apagar el monitor desde la línea de comando. –
ddcci ahora es ddccontrol: http://sourceforge.net/projects/ddccontrol/ Como dijo Eren, lo hace, e incluso puede hacerlo usted mismo con 'ddccontrol -r 0xe1 -w 0' – domen
Para mi caso, los errores de ddccontrol salen (se queja de que el monitor no es compatible) cuando el monitor está encendido y conectado, pero ddccontrol está en silencio cuando no está conectado o apagado. Todavía está buscando un método para determinar si el monitor (TV) está en otra entrada. Pero eso es probablemente más allá de lo que es factible. Además, para ejecutar esto bajo Ubuntu 12.04 ver aquí: http://www.techytalk.info/ubuntu/ddccontrol/ y probablemente necesites hacer un 'sudo modprobe i2c-dev' para que funcione –
Al utilizar xset siempre devuelve xset: no se puede abrir la pantalla ""
Sin embargo, la "fuerza xset DPMS off" & "fuerza xset DPMS fuera" Comandos de hecho girar el monitor apagado y encendido. Estoy utilizando la secuencia de comandos se indica aquí -
http://systembash.com/content/how-to-turn-off-your-monitor-via-command-line-in-ubuntu/
De systembash.com, aquí está el código tomado del enlace, en caso de que disminuirá alrededor del día:
#!/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
No todos los monitores soportan VESA DDC. La cosa puede complicarse aún más si usa un muelle.
Por otro lado, hay una manera de comprobar si sus acciones se detectan mediante la supervisión de los eventos kernel/udev. Para hacer esto, para Fedora y RHEL, el tipo siguiente comando:
sudo udevadm monitor --property
se mostrará cada núcleo y udev eventos que detecte. A partir de eso, puede probar conectar/desconectar el cable de datos del monitor; enchufe/desenchufe el cable de alimentación del monitor; alternar los estados de espera/encendido presionando el botón de encendido.
Si no se genera ninguna salida después de una acción, entonces su sistema no puede detectarla.
xset -q
es el camino a seguir para una pi frambuesa. Una verificación para ver si la respuesta contiene 'Monitor está activado' es una gran manera de usar un pin gpio para apagar una luz de fondo de la pantalla 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. ¿Cómo determinar si un artefacto Maven está en mi repositorio desde la línea de comandos?
- 2. Cómo comprobar si smtp está funcionando desde la línea de comandos (Linux)
- 3. Detectando si el monitor está apagado
- 4. ¿Determina si LTE está encendido?
- 5. Comprobando si .NET está instalado desde la línea de comandos
- 6. Detectar si el monitor está en C#
- 7. Desde la línea de comandos, ¿cómo saber qué versión de Firefox está instalada en Windows/Linux?
- 8. Compruebe de forma programática si el monitor está apagado
- 9. ¿Cómo detectar si UISwitch está encendido/apagado?
- 10. * en la línea de comandos de linux
- 11. Cómo arrancar desde la línea de comandos
- 12. Salida a línea de comandos si se inició desde la línea de comandos
- 13. Cómo funciona NOHZ = Encendido do_timer en el núcleo de Linux
- 14. ¿Cómo puedo saber si un programa se está ejecutando desde la línea de comandos o desde la web?
- 15. Ejecutar comandos de Linux desde Qt4
- 16. Forzar el arranque en la línea de comandos de Linux
- 17. ¿Cómo formalizar correctamente el uso de la línea de comandos de los comandos de GNU/Linux?
- 18. ¿Cómo envío correos electrónicos desde la línea de comandos?
- 19. ¿Cómo determinar si la aplicación de Android está abierta desde el mensaje de notificación?
- 20. ¿Cómo pruebo la velocidad neta desde la línea de comandos en un servidor Linux (sin gui)?
- 21. Haga una "GUI" de Linux en la línea de comandos
- 22. ¿Hay alguna forma de determinar la versión de .NET Framework desde la línea de comandos?
- 23. ¿Cómo descargar Python desde la línea de comandos?
- 24. Cambiar el fondo de Terminal.app desde la línea de comandos
- 25. iOS5: cómo determinar si el Centro de notificaciones de la aplicación está activado/desactivado
- 26. Ejecutar Java desde la línea de comandos
- 27. ¿Cómo llamar a las funciones de MATLAB desde la línea de comandos de Linux?
- 28. En Linux: ¿cómo puedo determinar mediante programación si una interfaz NIC está habilitada y conectada?
- 29. Ejecutar el modo de depuración desde la línea de comandos
- 30. ¿Puede PHP detectar si se ejecuta desde un trabajo cron o desde la línea de comandos?
'echo '¡Rápido!Presione una tecla si ve esto :-) '' – paxdiablo
Aunque técnicamente no es '' desde la línea de comandos '', hay una secuencia de comandos de python [Sobre esta pregunta de SO] (http://stackoverflow.com/questions/10400236/how-to- observe-cambia-en-conectado-monitores-a-xlib) que hace el truco muy bien – Barton