Comment connaître ma résolution d'écran à partir d'un script shell?
ubuntu
gnome
xorg
resolution
dave4420
la source
la source
$( )
syntaxe (ieDIMENSIONS=$(xdpyinfo ...
). Puis utilisez àsed
nouveau pour obtenir les deux:WIDTH=$(echo $DIMENSIONS | sed -r 's/x.*//')
etHEIGHT=$(echo $DIMENSIONS | sed -r 's/.*x//')
.xdpyinfo
imprime un message d'erreur s'il ne peut pas accéder aux informations, donc erreur de redirection vers/dev/null
. Pour cette raison , vous pouvez ajouter une redirection d'erreur:xdpyinfo 2> /dev/null
. Ainsi, la pleine Piple ressemble à ceci:xdpyinfo 2> /dev/null | grep dimensions | sed -r 's/^[^0-9]*([0-9]+x[0-9]+).*$/\1/'
. Cela rendra votre script plus solide.xdpyinfo | grep dimensions
vous donnera la résolution totale, si vous avez plusieurs écrans, ce sera la somme de tous.xrandr --current
vous donnera la résolution pour chaque moniteur.J'utilise cet extrait pour trouver la résolution maximale possible pour rDesktop sans passer en plein écran:
Sortie:
Minus décoration de fenêtres (plus ou moins):
Sortie:
Quelle est la résolution maximale pour rDesktop sans passer en plein écran.
Fin de commande:
Cela fonctionne bien jusqu'à présent, mais je n'ai pas encore fait de tests approfondis.
Un autre exemple concerne le screencast avec
avconv
:la source
xdpyinfo: Unable to open display "".
rdesktop [other_args] -g $(xrandr --current | grep '*' | uniq | awk '{print $1}')
.xrandr --current | grep '*' | awk -v line="$SCREEN" 'NR==line{print $1}' | cut -d 'x' -f1
si vous souhaitez spécifier un écran (avec une configuration multi-moniteur) (SCREEN
index 1)Vous pouvez utiliser la
xrandr -q
commande. À partir de là, vous pouvez créer un script shell si nécessaire.Pour plus d'informations sur la commande, cliquez ici ou tapez man xrandr
la source
la source
xwininfo -root|sed '/Height/!d;s/.* //'
pour la hauteur et laxwininfo -root|sed '/Width/!d;s/.* //'
largeur.xdpyinfo
le fera, avec un peu d'analyse. Il donne beaucoup d'informations que vous devrez ensuite creuser le numéro d'écran, et les dimensions dela source
Deux alternatives possibles produites combinant les réponses de @ user31752 et @ eliezer-e-vargas
Une regex plus simple:
ou en utilisant cut:
L’utilisation de
grep '*' | uniq
from @ eliezer-e-vargas permet d’obtenir une ligne différente (ex. "1440x900 59.90 * + 59.89") de la sortie xrandr, tandis que le grep 'connecté' en obtient une simple (ex. "LVDS1 connecté 1440x900 + 0 + 0 ..... ").L'utilisation de regex par @ user31752 est agréable; la ligne que j'utilise nécessite donc une regex plus simple, ou peut être remplacée par la commande de coupe plus simple.
Exemple de sortie xrandr
la source
Comme dans la réponse acceptée mais moins compliquée:
Exemple de sortie:
la source
Lecture des données d'écran du moniteur
La norme vesa fournit une méthode permettant de lire la résolution de l'écran du moniteur.
Un moniteur prend généralement en charge plusieurs résolutions et actualisations. Bien sûr, quelqu'un préférera le maximum (physique).
Pour lire ces données de moniteur, essayez l’une des solutions suivantes:
edid-decode
S'il n'est pas installé, tapez
Puis lisez le
edid
fichierread-edid
Installer avec
Lisez ensuite les données du moniteur à l’écran via i2c et analysez-les.
Hexdump les données edid
Si edid-tools n'est pas installé, vous pouvez vider le
edid
fichier hexadécimal, par exemple:Pour chiffrer ce fichier hexadécimal, jetez un œil à wiki ou téléchargez les spécifications edid .
la source