58 votes

Comment puis-je connaître ma résolution d'écran à partir d'un script shell?

Comment puis-je connaître la résolution de mon écran à partir d'un script shell ?

1voto

Lark Points 1640

xdpyinfo le fera, avec un peu d'analyse. Cela donne beaucoup d'informations dont vous devrez ensuite extraire le numéro de l'écran et les dimensions

1voto

campisano Points 351

Deux alternatives possibles produites en combinant les réponses de @user31752 et @eliezer-e-vargas

Un regex plus simple:

$ xrandr --current | sed -n 's/.* connected \([0-9]*\)x\([0-9]*\)+.*/\1x\2/p'
1440x900

ou en utilisant cut:

$ xrandr --current | grep ' connected ' | cut -d ' ' -f 3 | cut -d '+' -f 1
1440x900

L'utilisation de grep '*' | uniq de la part de @eliezer-e-vargas obtient une ligne différente (ex. " 1440x900 59.90*+ 59.89" ) de la sortie de xrandr, tandis que le grep ' connected ' obtient une ligne simple (ex. "LVDS1 connected 1440x900+0+0 .....").

L'utilisation du regex par @user31752 est bien, donc la ligne que j'utilise nécessite un regex plus simple, ou peut être remplacée par la commande cut plus simple.

Exemple de sortie xrandr

$ xrandr --current
Screen 0: minimum 320 x 200, current 1440 x 900, maximum 8192 x 8192
LVDS1 connected 1440x900+0+0 (normal left inverted right x axis y axis) 331mm x 207mm
   1440x900      59.90*+  59.89  
   1360x768      59.80    59.96  
   1152x864      60.00  
   1024x768      60.00  
   800x600       60.32    56.25  
   640x480       59.94  
VGA1 disconnected (normal left inverted right x axis y axis)
HDMI1 disconnected (normal left inverted right x axis y axis)
DP1 disconnected (normal left inverted right x axis y axis)

0 votes

Y a-t-il une raison pour que quelqu'un utilise ces commandes plutôt que ceux dans la réponse de Eliezer E. Vargas ?

0 votes

Veuillez éditer ces informations dans votre réponse.

1voto

abu_bua Points 251

Lire les données de l'écran du moniteur

La norme VESA fournit une méthode pour lire la résolution de l'écran du moniteur.

Données d'identification étendue de l'affichage (EDID) : Cette norme définit des formats de données pour transporter des informations de configuration, permettant une utilisation optimale des affichages.

Un moniteur prend en charge typiquement plusieurs résolutions et taux de rafraîchissement. Bien sûr, quelqu'un préférera la résolution maximale (physique).

Pour lire ces données du moniteur, essayez l'une de ces solutions :

  • edid-decode

    Si ce n'est pas déjà installé, tapez

    sudo apt install edid-decode

    Puis lisez le fichier edid

    edid-decode /sys/class/drm/card0-eDP-1/edid
  • read-edid

    Installez avec

    sudo apt install read-edid 

    Puis lisez les données du moniteur de l'écran via i2c et analysez-les

    sudo get-edid | parse-edid
  • Hexdump des données EDID

    Si les outils edid ne sont pas installés, vous pouvez afficher le fichier hexadécimal edid, par exemple :

    hd /sys/class/drm/card0-eDP-1/edid

    Pour chiffrer ce fichier hexadécimal, consultez la page wiki ou téléchargez les spécifications EDID.

0 votes

Si vous n'avez pas X et xrandr installés, edid-decode est un outil parfait lorsque vous voulez connaître les résolutions supportées du moniteur connecté!

0voto

Comme dans la réponse acceptée mais moins compliqué:

xdpyinfo | grep dimensions

Exemple de sortie:

dimensions:    1366x768 pixels (361x203 millimètres)

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X