#1 Le 12/02/2020, à 13:15
- LukePerp
[Résolu] Comment identifier l'écran actif ?
Bonjour,
Comment identifier sur quel écran est affiché l'affichage? C'est à dire comment détecter quel écran est actif ? Je souhaite faire un script et l'associer à un raccourci clavier pour permuter l'affichage ainsi :
Moniteur seul
TV seul
Clone moniteur et tv
J'ai presque terminé mon projet, via mon script je sais permuter l'affichage sur les écrans, mais il me reste à trouver comment détecter quel écran est actif. C'est à dire comment déterminer sur quel écran est affiché l'affichage ? Oui parce que la permutation dépend de l'état actuel de l'affichage. Je ne parle pas de lister les écrans connectés mais des écrans dont l'image est affiché. Pourriez vous m'aider svp ?
Dernière modification par LukePerp (Le 14/02/2020, à 10:33)
Gamer inside - Ubuntu Mate dernière LTS - Intel i5, 16 Go - Dual boot Windows - Utilisateur de Dapps sur Ethereum
Hors ligne
#2 Le 14/02/2020, à 10:32
- LukePerp
Re : [Résolu] Comment identifier l'écran actif ?
Trouvé sur stack overflow :
get_active_monitors()
{
xrandr | awk '/\ connected/ && /[[:digit:]]x[[:digit:]].*+/{print $1}'
}
EcranActif=$(get_active_monitors)
echo "Ecran actif : $EcranActif"
Dernière modification par LukePerp (Le 15/02/2020, à 13:58)
Gamer inside - Ubuntu Mate dernière LTS - Intel i5, 16 Go - Dual boot Windows - Utilisateur de Dapps sur Ethereum
Hors ligne
#3 Le 15/02/2020, à 03:57
- kamaris
Re : [Résolu] Comment identifier l'écran actif ?
Il y a deux petites erreurs dans le programme awk, même s'il doit s'en sortir au final :
awk '/ connected/ && /[[:digit:]]x[[:digit:]].*\+/{print $1}'
Hors ligne
#4 Le 15/02/2020, à 13:57
- LukePerp
Re : [Résolu] Comment identifier l'écran actif ?
Il y a deux petites erreurs dans le programme awk, même s'il doit s'en sortir au final :
awk '/ connected/ && /[[:digit:]]x[[:digit:]].*\+/{print $1}'
Je prends ton code, merci. Pourrais tu expliquer les différences car je ne comprends pas encore le langage awk.
Edit : oops, j'ai remplacé la solution par ton code et on ne peux plus comparer
Résultat de mon script pour permuter l'affichage :
https://forum.kubuntu-fr.org/viewtopic.php?pid=22221629
Dernière modification par LukePerp (Le 15/02/2020, à 14:10)
Gamer inside - Ubuntu Mate dernière LTS - Intel i5, 16 Go - Dual boot Windows - Utilisateur de Dapps sur Ethereum
Hors ligne
#5 Le 15/02/2020, à 14:26
- kamaris
Re : [Résolu] Comment identifier l'écran actif ?
Eh bien en fait, ça n'est pas spécifique à awk, mais aux expressions régulières étendues que awk utilise (comme grep -E, ou sed -E).
D'une part, il n'y a pas de raison d'échapper un espace, comme c'est fait dans
\ connected
Ce n'est pas vraiment une erreur, l'antislash sera simplement ignoré, mais awk te signalera un warning à ce propos si tu l'utilises avec l'option --lint.
D'autre part, le motif « .*+ », s'il était voulu, n'aurait pas de sens, ou en tout cas pas d'intérêt : n'importe quel caractère (« . ») répété zéro ou plusieurs fois (« * ») répété une ou plusieurs fois (« + »).
Mais il n'est très certainement pas voulu : « + » doit être considéré au sens littéral, comme un motif à rechercher dans la sortie de xrandr, et pour ça il doit être protégé : « \+ ».
Si on travaillait avec des expressions régulières basiques, comme dans grep ou sed (sans l'option -E), ça ne serait pas le cas.
Hors ligne