Xrandr: outil puissant pour configurer votre moniteur

Dans cette opportunité, nous expliquons comment utiliser xrandr, un outil terminal utilisé pour corregir la résolution de votre moniteur, leur taux de rafraîchissement, etc. et il sert même à manipuler plus d'un moniteur.

Miguel Suárez Patiño est un autre des Gagnants de notre concours hebdomadaire: «Partagez ce que vous savez sur Linux«. Félicitations Miguel!

L'utilisateur normal, principalement Windows ou Apple, ne comprend pas très bien les gens qui sont passionnés par Linux et qui passent beaucoup de temps dans la console de commande à taper "des choses étranges".

Ce que je vais vous dire aujourd'hui, c'est l'un de ces jours où vous vous sentez particulièrement fier de Linux. C'est l'histoire:

Mon cher vieux moniteur CRT de la marque HP pavillon mx70, il m'offre un large éventail de résolutions, mais mon Linux Mint LXDE ne le reconnaît pas et il me montre une bonne résolution de 1024 × 768 mais avec seulement 60 hz de rafraîchissement, ce qui n'est pas très bon pour les yeux. En théorie, le moniteur peut atteindre 85 Hz avec cette résolution.

Et qu'est-ce que je fais maintenant? Eh bien, comme d'habitude, accédez à la ligne de commande et JOUER!

Utilisation de xrandr

Pour modifier les résolutions, il y a la commande "xrandr" (X Resize & Rotate). Avec cette commande, vous pouvez configurer la résolution de l'écran, mais vous pouvez également ajouter de nouvelles résolutions tant que le moniteur les prend en charge.

Remarquez qu'il existe plusieurs interfaces graphiques: grandr, arandr.

Pour voir les résolutions détectées par le système, il suffit d'appeler cette commande et de voir le résultat, dans mon cas:

informiguel ~ $ xrandr Ecran 0: minimum 320 x 200, courant 1024 x 768, maximum 4096 x 4096 VGA-0 connecté 1024x768 + 0 + 0 (normal gauche inversé axe x droit et axe) 0 mm x 0 mm 1024x768 60.0 800x600 60.3 56.2 848x480 60.0 640x480 59.9 S-vidéo déconnecté (normal gauche inversé axe x droit axe y)

Comme vous pouvez le voir, pour une résolution de 1024 × 768, il n'offre que 60.0 Hz.

Eh bien, je vais ajouter la résolution dans laquelle je suis le meilleur et que mon moniteur offre: 1024 × 768 à 85 Hz. Évidemment, chaque moniteur a ses propres caractéristiques qu'il faut consulter.

Le problème est que pour créer une nouvelle résolution il faut des données "très étranges" telles que la fréquence verticale, horizontale, maximale, minimale, totale, ... Mais Linux a aussi la solution avec la commande "cvt", un utilitaire pour calculer Modes VESA nécessaires pour obtenir la résolution. Eh bien, si je veux 1024 × 768 à 85 Hz, j'écris:

informiguel ~ $ cvt 1024 768 85 # 1024x768 84.89 Hz (CVT 0.79M3) hsync: 68.68 kHz; pclk: 94.50 Mhz Modeline "1024x768_85.00" 94.50 1024 1096 1200 1376 768 771 -hsync + vsync

Vous pouvez également essayer "gtf" qui fait plus ou moins la même chose:

informiguel ~ $ gtf 1024 768 85 # 1024x768 à 85.00 Hz (GTF) hsync: 68.60 kHz; pclk: 94.39 MHz Modeline "1024x768_85.00" 94.39 1024 1088 1200 1376 768 769 772 -HSync + Vsync

Et de cette façon apparaît la "Modeline" que je dois utiliser avec "xrandr". N'ayez pas peur si les hz ne correspondent pas tout à fait (94.50 au lieu de 85).

Étape pour ajouter cette résolution en copiant la "modeline" obtenue: (un détail, quand vous mettez une option avec son nom long comme "newmode" elle est précédée de 2 tirets, peut-être qu'ils ne sont pas beaucoup perceptibles, tandis que d'autres fois seulement 1 tiret est comme dans le cas de "hsync")

informiguel ~ $ xrandr --newmode "1024x768_85.00" 94.50 1024 1096 1200 1376 768 771 -hsync + vsync

Si nous vérifions le résultat:

informiguel ~ $ xrandr Ecran 0: minimum 320 x 200, courant 1024 x 768, maximum 4096 x 4096 VGA-0 connecté 1024x768 + 0 + 0 (normal gauche inversé axe x droit axe y) 0mm x 0mm 1024x768 60.0 * 800x600 60.3 56.2 848x480 60.0 640x480 59.9 S-vidéo déconnecté (normal gauche inversé axe x droit axe y) 1024x768_85.00 (0x137) 94.5Mhz h: largeur 1024 début 1096 fin 1200 total 1376 skew 0 horloge 68.7KHz v: hauteur 768 début 771 fin 775 total 809 horloge 84.9 Hz

Vous pouvez voir la nouvelle "Modeline" créée. J'aime le son de «Modeline»! Si un jour j'ai un chat, je l'appellerai ainsi.

Eh bien, nous continuons, maintenant je dois ajouter ce nouveau mode à la liste des modes disponibles:

Informiguel ~ $ xrandr --addmode VGA-0 1024x768_85.00

Le truc "VGA-0", si vous regardez les résultats de "xrandr", c'est comme ça que ma carte graphique s'appelle. On voit le résultat, parfait!

informiguel ~ $ xrandr Ecran 0: minimum 320 x 200, actuel 1024 x 768, maximum 4096 x 4096 VGA-0 connecté 1024x768 + 0 + 0 (normal gauche inversé droit 1024x768 60.0 * 800x600 60.3 56.2 848x480 60.0 640x480 59.9 1024x768_85.00 84.9 S -vidéo déconnecté (normal gauche inversé axe x droit axe y)

Il ne reste plus qu'à appliquer cette résolution au moniteur:

informiguel ~ $ xrandr --sortie VGA-0 --mode 1024x768_85.00

Un clin d'œil et le moniteur est plus beau que jamais.

Et si je veux mettre une résolution de 800 × 600 avec un taux de rafraîchissement de 60 hz (je vois qu'il y a 2 rafraîchissements disponibles dans ce mode, 60.3 et 56.2)? Cela peut être fait de cette façon:

Informiguel ~ $ xrandr -s 800x600 -r 60

A noter que la boisson gazeuse utilisait 60 au lieu de 60.3, puisque ce dernier ne l'a pas admis. Revenons maintenant à la jolie résolution:

rapportiguel ~ $ xrandr -s 1024x768_85.00

Si j'ai pris par défaut le rafraîchissement à 60 hz, alors on écrit:

informiguel ~ $ xrandr -s 1024x768_85.00 -r 85

Et si je me trompe et que je veux tout supprimer? Eh bien rien, allons-y. Pour supprimer cette résolution de la liste des modes disponibles:

informiguel ~ $ xrandr --delmode VGA-0 1024x768_85.00

Si je regarde le résultat:

informiguel ~ $ xrandr Ecran 0: minimum 320 x 200, courant 1024 x 768, maximum 4096 x 4096 VGA-0 connecté 1024x768 + 0 + 0 (normal gauche inversé axe x droit axe y) 0mm x 0mm 1024x768 60.0 * 800x600 60.3 56.2 848x480 60.0 640x480 59.9 S-vidéo déconnecté (normal gauche inversé axe x droit axe y) 1024x768_85.00 (0x136) 94.5Mhz h: largeur 1024 début 1096 fin 1200 total 1376 skew 0 horloge 68.7KHz v: hauteur 768 début 771 fin 775 total 809 horloge 84.9 Hz

Il est déjà supprimé de la liste, mais maintenant les données apparaissent telles qu'elles ont été créées (–newmode) précédemment. Pour supprimer ceci aussi:

Informiguel ~ $ xrandr --rmmode 1024x768_85.00

On voit le résultat:

informiguel ~ $ xrandr Ecran 0: minimum 320 x 200, courant 1024 x 768, maximum 4096 x 4096 VGA-0 connecté 1024x768 + 0 + 0 (normal gauche inversé axe x droit axe y) 0mm x 0mm 1024x768 60.0 * 800x600 60.3 56.2 848x480 60.0 640x480 59.9 S-vidéo déconnecté (normal gauche inversé axe x droit axe y)

Tout était comme au début de l'article ...

Et enfin, je sais que vous êtes un joker, alors essayez ceci:
Écrivez d'abord ceci, qui n'apporte aucun changement pour le moment:

informiguel ~ $ xrandr --output VGA-0 - rotation normale

Et maintenant, essayez ce qui suit en tenant compte du fait que pour supprimer la blague, vous devez répéter l'instruction précédente (sélectionnez-la simplement à l'aide des touches fléchées):

informiguel ~ $ xrandr --output VGA-0 --tourner à gauche

Jusqu'ici tout est très beau mais il y a un problème, lors du redémarrage de l'ordinateur les configurations sont perdues. Je ne pense pas que ce soit une bonne idée d'ajuster le rafraîchissement de l'écran chaque fois que nous entrons dans l'ordinateur, il doit y avoir un moyen de le laisser fixe. Fonce.

Sous Linux il y a un fichier de configuration qui peu à peu et comme le matériel était mieux reconnu par les distributions, il était oublié. Son nom de chemin complet est "/etc/X11/xorg.conf". Le fichier de configuration de tous les paramètres qui font fonctionner l'environnement graphique.

Dans LXDE (environnement de bureau léger X11), le fichier n'existe pas, il faut donc le créer, ce qui n'est pas facile. Une solution possible est de faire ce qui suit:

On quitte l'environnement graphique, on passe à un terminal en appuyant sur CTRL + ALT + F1, rappelons que l'environnement graphique est CTRL + ALT + F7). Nous validons et «désactivons» l'environnement graphique:

informer ~ $ sudo /etc/init.d/lxdm stop

Ensuite, nous exécutons la configuration X:

informiguel ~ $ sudo X -configure

Un fichier nommé "xorg.conf.new" est créé qui est celui que nous devons déplacer vers votre site et modifier:

informiguel ~ $ mv xorg.conf.new /etc/X11/xorg.conf

Si tout est correct et que nous voulons redémarrer l'environnement graphique:

informer ~ $ sudo /etc/init.d/lxdm start

Il existe une autre solution qui peut être meilleure, vous commencez avec une distribution Linux sur "CD Live" et copiez le fichier dont le chemin complet est "/etc/X11/xorg.conf" et collez-le dans votre distribution. Si cette distribution a détecté correctement le moniteur, les problèmes sont résolus, sinon vous devez retoucher le fichier avec les données de rafraîchissement d'écran et de résolution que vous souhaitez. À titre d'exemple, j'ai dû ajouter ce qui suit pour que le soda soit adéquat:

Section "Moniteur" Identifiant "Moniteur générique" Option "DPMS" HorizSync 30-70 VertRefresh 50-120 Modeline "1024x768_85.00" 94.39 1024 1088 1200 1376 768 769 772 807 -HSync + Vsync Option "PreferredMode" "1024x768_85.00" EndSection Section "Écran" Identifiant "Écran par défaut" Périphérique "ATI Technologies, Inc. Radeon RV250 Si [Radeon 9000 Pro]" Moniteur "Moniteur générique" DefaultDepth 24 Option "AddARGBGLXVisuals" "True" Option "Metamode" "1024x768_85.00 +0+ 0 "Option" UseEdid "" False "Sous-section" Affichage "Profondeur 1 Modes" 1024x768 "" 800x600 "" 640x480 "EndSubSec ................... etc

Très important, recherchez les caractéristiques techniques du moniteur pour connaître la synchronisation verticale et horizontale. Comme on peut le voir sur l'image, la "Modeline" est celle calculée avec la commande "cvt".

Une fois les modifications nécessaires apportées, tout est prêt à fonctionner automatiquement au prochain démarrage de l'ordinateur. Problème résolu.

Maintenant, comment expliquez-vous à l'un des Windows ou Mac, l'émotion ressentie en ressentant le "contrôle" de la machine (et non l'inverse)?

Il me semble que nous sommes une espèce en voie de disparition… 

Ceux qui souhaitent approfondir leurs connaissances sur xrandr devraient absolument lire ces anciens articles publiés sur ce blog.

Merci Miguel Suárez Patiño!
Souhaitez-vous participer à notre concours mensuel et apporter une contribution à la communauté?
Il vous suffit de nous envoyer un courrier y compris l'astuce ou le mini-tutoriel de votre choix.

Ajouter comme source préférée dans Google