7
juin
2021
11:52

Comment changer la résolution d'affichage à partir de la ligne de commande Linux

7 juin 2021 11:52

Si la résolution de l'image à l'écran ne correspond pas à la résolution d'affichage, vous pouvez modifier la résolution à l'aide de la ligne de commande.

Au travail, j'ai un ordinateur sous Linux Mint 19.3 avec un écran large d'une résolution de 1366 x 768 pixels. Un jour, j'ai démarré l'ordinateur avec l'écran éteint, et le système d'exploitation a configuré la résolution sur 1024 x 768. Cette résolution est restée en mémoire, et l'image s'est étirée.

Exécution des diagnostics de l'écran main (affichage des résolutions prises en charge par l'écran) :

xrandr -d :0 -q

Screen 0: minimum 8 x 8, current 1024 x 768, maximum 32767 x 32767
VGA1 connected primary 1024x768+0+0 (normal left inverted right x axis y axis) 0mm x 0mm
1024x768 60.00*
800x600 60.32 56.25
848x480 60.00
640x480 59.94

comme vous pouvez le constater, la résolution de 1024x768 est sélectionnée par le système et est marquée d'un astérisque*.

 

Résoudre le problème

  1. Découvrez le modèle d'affichage (autocollant sur la couverture arrière) - à l'aide du modèle de la spécification, découvrez la résolution maximale prise en charge par le moniteur.
    Dans ce cas, 1366 x 768 px à un taux de rafraîchissement de 60 Hz.

Connectez-vous à Internet et installez le package xcvt.

sudo apt installer xcvt

  1. Exécuter la commande CV avec des paramètres correspondant à la résolution et au taux de rafraîchissement :
    cvt 1366 768 60

Dans mon cas, le résultat suivant a été généré :

# 1368x768 59.88 Hz (CVT) hsync: 47.79 kHz; pclk: 85.25 MHz
Modeline "1368x768_60.00" 85.25 1368 1440 1576 1784 768 771 781 798 -hsync +vsync

  1. Vous devez prendre la ligne et la transmettre à l'entrée xrandr pour créer un nouveau mode vidéo :

xrandr --newmode "1368x768_60.00" 85,25 1368 1440 1576 1784 768 771 781 798 -hsync +vsync

  1. Découvrez le nom de l'affichage - affiché par la commande xrandr :

    xrandr -d :0 -q

dans mon cas il n'y a qu'un seul affichage et son nom VGA1

  1. Ajoutez un nouveau mode créé précédemment à l'affichage :

xrandr --addmode VGA1 1368x768_60.00

  1. Enfin, j'ai exécuté la commande pour changer la résolution de l'image (en passant l'affichage au nouveau mode "1368x768_60.00") :

sudo xrandr --output VGA1 --mode 1368x768_60.00

L’affichage peut s’allumer ou s’éteindre. Si tout s'est bien passé, l'image deviendra la résolution sélectionnée.

Si nécessaire, restaurez la résolution à 1024x768 :
Appuyez plusieurs fois sur Entrée et entrez la commande suivante dans la ligne de commande

sudo xrandr --sortie VGA1 --mode 1024x768

Si nécessaire, répétez le changement de mode d'affichage :

xrandr --output VGA1 --mode 1368x768_60.00

appuyez sur "Entrée"

Vous n'avez pas besoin de saisir le mot de passe sudo à chaque fois.


Ajout pour moniteur avec résolution 1280x1024 :

cvt 1280 1024 60
xrandr --newmode "1280x1024_60.00"   109.00  1280 1368 1496 1712  1024 1027 1034 1063 -hsync +vsync
xrandr --addmode VGA-1 1280x1024_60.00
sudo xrandr --output VGA-1 --mode 1280x1024_60.00

Ajout du 29/12/2023 : Pour définir la résolution d'affichage et enregistrer un script shell prêt à être exécuté pour modifier la résolution de l'écran, vous pouvez utiliser le programme arandr:
sudo apt install arandr
arandr

Mise à jour du 27/01/2026 : certains pilotes de carte vidéo répondent à la commande permettant de définir le mode xrandr --output avec les erreurs "xrandr : échec de l'obtention de la taille du gamma pour la sortie par défaut", "xrandr : échec de la configuration du crtc 0" et "xrandr : la taille du gamma est 0". Vous pouvez essayer d'appuyer sur « e » ou « Tab » dans le menu Grub lors du chargement et ajouter quelque chose comme ceci au paramètre de ligne GRUB_CMDLINE_LINUX_DEFAULT nvidia_drm.fbdev=1 nvidia_drm.modeset=1. Ou dans le cas de la carte vidéo ATI Rage 128 :fb.fbdev=1 fb.modeset=1, selon le contenu du fichier /var/log/Xorg.0.log, poursuivez le démarrage en appuyant sur F10, Ctrl+X ou Entrée. Voici un exemple de commande complexe qui ne fonctionne toujours pas avec une ancienne carte graphique : sudo xrandr --output default --panning 1368x768 --crtc 0 --brightness 1.0 --scale 1x1 --gamma 1:1:1, l'erreur est la même : "xrandr : la taille Gamma est 0". Le moyen le plus simple consiste alors à remplacer la carte vidéo. ;-[

Définition permanente de la résolution d'affichage lors de la connexion à Linux

J'ai écrit les trois commandes suivantes dans le fichier exécutable.

J'ai d'abord créé un fichier vide dans mon dossier personnel

nano resolution.sh

Et j'y ai inséré 4 lignes de texte :
#!/bin/bash
xrandr --newmode "1368x768_60" 85.25 1368 1440 1576 1784 768 771 781 798 -hsync +vsync
xrandr --addmode VGA1 1368x768_60
xrandr --output VGA1 --mode 1368x768_60

j'ai enregistré le fichier.

Le même fichier, mais pour un moniteur 1280x1024, je joins :
résolution.sh.zip

A donné des autorisations - exécution uniquement par l'utilisateur actuel (propriétaire).

sudo chmod 700 resolution.sh

Ajouté au démarrage (j'ai le shell LXQT) :
Démarrer - Options - Paramètres LXQT - Paramètres de session - Démarrage automatique - Ajouter
sh /home/vladimir/resolution.sh.
Confirmé et fermé la fenêtre.

Une autre option consiste à ajouter les commandes à un fichier dans le répertoire personnel de l'utilisateur..xinitrc:

export GNOME_SHELL_SESSION_MODE=ubuntu
export XDG_CURRENT_DESKTOP=ubuntu:GNOME
export XDG_DATA_DIRS=/usr/share/openbox:/usr/local/share/:/usr/share/


xrandr --newmode "1280x1024_60.00" 109.00 1280 1368 1496 1712 1024 1027 1034 1063 -hsync +vsync
xrandr --addmode VGA-1 1280x1024_60.00
xrandr --output VGA-1 --mode 1280x1024_60.00

déconnecté et connecté pour vérifier. Lors de l'entrée, l'écran a clignoté et la résolution d'affichage correcte a été appliquée.
De plus, le fichier de commande resolution.sh peut être exécuté depuis la fenêtre borne.

Le cas de la connexion HDMI et de plusieurs moniteurs

Contrairement à la connexion via un câble VGA évoquée ci-dessus, lors de l'utilisation de plusieurs moniteurs connectés via des interfaces HDMI, la syntaxe des commandes est différente :
xrandr --newmode DVI-I-1 mode_name1 ...
xrandr --newmode DVI-I-2 mode_name2 ...
xrandr --addmode DVI-I-1 mode_name1
xrandr --addmode DVI-I-2 mode_name2
xrandr --output DVI-I-1 --mode mode_name1
xrandr --output DVI-I-2 --mode mode_name1

les noms d'interface du moniteur peuvent être obtenus en utilisant la même commande

xrandr -q

Ajout : les fichiers de commandes shell permettant de modifier la résolution, pour plusieurs moniteurs à la fois, peuvent être préparés à l'aide d'un utilitaire graphique Arandr(installation :sudo apt install arandr). Le nom arandr signifie « Another XRandR GUI » (utilitaire GUI pour installer XRandR).

Ajout : pour l'environnement de bureauLXQT(sous Lubuntu OS, derrière Fedora Linux ou dans un shell auto-installé) - il existe un utilitaire graphique lxqt-config-monitor disponible dans le menu « Options », « Paramètres LXQT » et « Paramètres du moniteur », cette fonction permet de modifier la résolution et le taux de rafraîchissement de vos moniteurs et d'enregistrer ces paramètres dans un profil (fichier de configuration). Toutefois, les profils de résolution dans LXQT ne peuvent pas être modifiés en ligne de commande. Utilitaire lxqt-config-monitor modifie les fichiers texte :
~/.config/autostart/lxqt-config-monitor-autostart.desktop
~/.config/lxqt/lxqt-config-monitor.conf

Les fichiers de paramètres répertoriés ici sont utilisés lors du démarrage d'une session LxQT à partir du fichier ~/.xinitrc , dont le script exec startlxqt est appelé.


Sources :



Publications connexes