Comment savoir si les moniteurs d'un ordinateur sont activés/désactivés depuis la ligne de commande sous Linux? J'ai toujours considéré les moniteurs comme des périphériques de sortie uniquement, mais j'ai remarqué que la boîte de dialogue Gnome Monitor Preferences (Préférences du moniteur Gnome) possède une fonction de détection de moniteur. Cela peut-il être généralisé pour déterminer si un moniteur est physiquement éteint?Comment déterminer si le moniteur LCD est activé à partir de la ligne de commande Linux
Répondre
Vous pouvez regarder la sortie de
$ xset -q
Je ne sais pas si cela va fonctionner, mais je pense que la ligne « Monitor est (on | off) » devrait vous dire la réponse.
Toujours me donne 'Monitor is On' même quand je l'éteins. – Thomas
Cela pourrait juste montrer si le moniteur est branché ou non. Je ne pense pas qu'il existe un moyen de voir si c'est activé. S'il est branché, l'OS suppose qu'il est allumé. Gnome détecte probablement le moniteur lorsqu'il est branché et non lorsqu'il est allumé/éteint. Je suppose que la seule façon d'essayer cela est de taper la commande précédente, débranchez votre moniteur, appuyez sur Entrée, branchez le moniteur et voir ce qu'il dit. Je ne peux pas tester ce b/c je suis sur un ordinateur portable. – avacariu
"Le moniteur reste allumé même lorsque je l'éteins" - comment pouvez-vous le dire? Peut-être qu'il est assez intelligent pour revenir en arrière et modifier la sortie quand il détecte que vous avez allumé votre moniteur pour vérifier. Maintenant, je dois juste savoir si la lumière du réfrigérateur _really_ s'éteint lorsque vous fermez la porte. – paxdiablo
Vous pouvez obtenir des informations à l'aide de l'utilitaire de ligne de commande xrandr, si votre pilote vidéo prend en charge cette extension.
Il semble me donner la même fausse lecture que je reçois de xset. – Cerin
La connexion VESA DDC est une connexion I2C qui peut être utilisée pour interroger la présence du moniteur.
Linux exposes the I2C device et les programmes userland peuvent communiquer directement avec le moniteur avec le code tel que celui en http://jaffar.cs.msu.su/oleg/ddcci/
Avis ce ci-dessous: 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]
Une question intéressante est de savoir si oui ou non votre moniteur retourne ce morceau de données, et si ce n'est pas le cas, si elle répond à tous si elle est actuellement désactivée.
C'est le cas. Il est même possible d'allumer et d'éteindre votre moniteur depuis la ligne de commande. –
ddcci est maintenant ddccontrol: http://sourceforge.net/projects/ddccontrol/ Comme Eren l'a dit, c'est le cas, et vous pouvez même le faire vous-même avec 'ddccontrol -r 0xe1 -w 0' – domen
Pour mon cas, les erreurs ddccontrol out (se plaint que le moniteur n'est pas pris en charge) lorsque le moniteur est allumé et connecté, mais ddccontrol est silencieux lorsqu'il n'est pas connecté ou éteint. Toujours à la recherche d'une méthode pour déterminer si le moniteur (TV) est sur une autre entrée cependant. Mais c'est probablement au-delà de ce qui est faisable. Aussi, pour que cela fonctionne sous Ubuntu 12.04 voir ici: http://www.techytalk.info/ubuntu/ddccontrol/ et vous avez probablement besoin de faire un sudo modprobe i2c-dev pour le faire fonctionner –
Lorsque vous utilisez xset il retourne toujours xset: impossible d'ouvrir l'affichage ""
Cependant, "xset dpms vigueur off" & "xset dpms la force de" commandes tourner réellement mon moniteur et sur. J'utilise le script décrit ici -
http://systembash.com/content/how-to-turn-off-your-monitor-via-command-line-in-ubuntu/
De systembash.com, voici le code pris à partir du lien, dans le cas où il sera en baisse un jour:
#!/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
Tous les moniteurs VESA DDC. La chose pourrait devenir encore plus compliquée si vous utilisez un dock. D'autre part, il existe un moyen de vérifier si vos actions sont détectées en surveillant les événements kernel/udev. Pour ce faire, pour Fedora et RHEL, commande type:
sudo udevadm monitor --property
Il permet d'afficher tous les événements du noyau et udev il a détecté. De cela, vous pouvez essayer de brancher/débrancher le câble de données du moniteur; branchez/débranchez le câble d'alimentation du moniteur; basculer les états stand-by/on en appuyant sur le bouton d'alimentation.
Si aucune sortie n'est générée après une action, votre système ne peut pas la détecter.
xset -q
est la voie à suivre pour un pi de framboise. Une vérification pour voir si la réponse contient 'Monitor is On' est un excellent moyen d'utiliser une broche gpio pour éteindre un rétroéclairage 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. Déterminer si le module Magento est activé
- 2. Filigrane vidéo à partir de la ligne de commande Linux
- 3. Déterminer si ELMAH est activé ou non?
- 4. Sortie vers la ligne de commande si elle est démarrée à partir de la ligne de commande
- 5. Comment déterminer si une construction provient de l'éditeur ou de la ligne de commande?
- 6. Comment déterminer si un contrôle est activé sur une page?
- 7. Détecter si le moniteur est allumé C#
- 8. Ignore/désactive la commande usercontrol si javascript est activé
- 9. Comment utiliser un VBscript pour déterminer si le (s) moniteur (s) connecté (s) à une machine est un écran LCD ou CRT?
- 10. Comment puis-je déterminer l'architecture d'un ordinateur à partir de la ligne de commande?
- 11. * sur la ligne de commande linux
- 12. Comment déterminer si le compte de l'utilisateur est activé ou désactivé
- 13. déterminer si le chipset est capable de l'injection de paquets et en mode moniteur
- 14. Comment appeler les fonctions MATLAB à partir de la ligne de commande Linux?
- 15. Comment remplacer ce texte dans un fichier à partir de la ligne de commande sous Linux?
- 16. a commencé à partir de la ligne de commande?
- 17. Comment créer SQLite3 à partir de la ligne de commande?
- 18. Comment déterminer si un fichier PHP est chargé via cron/ligne de commande
- 19. Démarrage simultané de plusieurs instances d'un script python à partir de la ligne de commande Linux
- 20. Déterminer si l'utilisateur est en ligne
- 21. Comment déterminer si une ligne de table est la première ou la dernière à utiliser jQuery
- 22. Est-il possible de publier un fichier FLA à partir de la ligne de commande?
- 23. Exécution du programme Java à partir de la ligne de commande Linux
- 24. Commande à distance de la ligne de commande Chrome sous Linux?
- 25. Exécution groovy à partir de la ligne de commande
- 26. Le script PHP fonctionne à partir de la ligne de commande, pas à partir de cron
- 27. Comment puis-je déterminer le taux de rafraîchissement du moniteur?
- 28. Comment afficher la ligne de commande et les variables d'environnement pour un processus dans la ligne de commande linux
- 29. est-il une commande de ligne de commande simple dans Linux pour justifier le code C++?
- 30. envoyer des valeurs à partir de la ligne de commande?
'echo 'Rapide!Appuyez sur une touche si vous voyez ceci :-) '' – paxdiablo
Bien que techniquement pas "à partir de la ligne de commande", il y a un script python [Sur cette question SO] (http://stackoverflow.com/questions/10400236/how-to- observer-changements-dans-connecté-moniteurs-via-xlib) qui fait l'affaire bien – Barton