Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentesRévision précédente
Prochaine révision
Révision précédente
xrandr [Le 26/01/2019, 13:23] – [Ajouter une résolution] Zococoxrandr [Le 27/09/2025, 14:56] (Version actuelle) – [Activer la résolution choisie] 90.127.53.1
Ligne 1: Ligne 1:
-{{tag>Xenial Trusty écran personnalisation résolution}}+{{tag>Focal écran personnalisation résolution}}
  
 ---- ----
Ligne 9: Ligne 9:
 Le point fort de l'extension RandR est que cette dernière est directement implémentée dans Xorg et ne nécessite pas le redémarrage de X lorsque l'on souhaite par exemple changer sa résolution, brancher un deuxième écran ou [[:multi-écran|en utiliser plusieurs]]. Le point fort de l'extension RandR est que cette dernière est directement implémentée dans Xorg et ne nécessite pas le redémarrage de X lorsque l'on souhaite par exemple changer sa résolution, brancher un deuxième écran ou [[:multi-écran|en utiliser plusieurs]].
  
-Il existe des interfaces graphiques réalisant une partie des transformations de xrandr.+Il existe des interfaces graphiques réalisant une partie des transformations de xrandr :
  
-  * Voir la page [[:configurer_son_ecran|sur comment configurer son écran]].+  * Voir la page [[:configurer_son_ecran|sur comment configurer son écran]] pour les interfaces graphiques par défaut.
   * **[[apt>LXRandR]]** (installé par défaut sous [[:Lubuntu]]).   * **[[apt>LXRandR]]** (installé par défaut sous [[:Lubuntu]]).
-  * **[[apt>ARandR]]** : très utile pour gérer le multi-écran avec LXDE (Lubuntu). Permet de régler l'emplacement d'un écran activé mais qui n'est pas connecté (écran virtuel qui peut être partagé via vnc)+  * **[[https://debian-facile.org/doc:environnements:x11:arandr|ARandR]]** : très utile pour gérer le multi-écran avec LXDE (Lubuntu). Permet de régler l'emplacement d'un écran activé mais qui n'est pas connecté (écran virtuel qui peut être partagé via vnc)
  
  
 ===== Configuration ===== ===== Configuration =====
 +==== Connaitre la configuration xrandr actuelle ==== 
 +Avant de jouer avec xrandr, il est souvent utile de connaitre la configuration xrandr actuelle. Voici une astuce super utile : utiliser l'application arandr : 
 +  - Installer **[[apt>arandr]]** 
 +  - Lancer //arandr// 
 +  - (optionnel) changer la configuration de vos écrans 
 +  - Menu //Disposition// => commande //Enregisrter sous...// 
 +  - Choisir un fichier 
 +  - Ouvrir le fichier dans un éditeur de texte et vous verrez la commande //xrandr// complète
 ==== Lister les sorties et les résolutions disponibles ==== ==== Lister les sorties et les résolutions disponibles ====
  
Ligne 43: Ligne 50:
 </code> </code>
  
-Vous voyez apparaître les noms des modes écrans disponibles en première colonne et les différentes fréquences de rafraîchissement disponibles en seconde colonne.  +Vous voyez apparaître les noms des modes écrans disponibles en première colonne et les différentes fréquences de rafraîchissement disponibles en seconde colonne.
  
-Les noms des écrans apparaissent en MAJUSCULES et leur statut suit.  Il existe sorties vidéo possibles : sortie VGA, sortie DVI, sortie LVDS pour la sortie principale d'un portable et sortie TV pour S-video. Les écrans utilisables sont marqués « connected », leurs noms seront utilisés avec la commande « -- output ».+Les noms des écrans apparaissent en MAJUSCULES et leur statut suit.  Il existe sorties vidéo possibles : sortie VGA, sortie DVI, sortie HDMI, sortie LVDS pour la sortie principale d'un portable et sortie TV pour S-video. Les écrans utilisables sont marqués « connected », leurs noms seront utilisés avec la commande « -- output ».
  
 Attention, il n'est pas nécessaire d'avoir sur votre ordinateur toutes les sorties détectées par XRandR. Certaines peuvent être bridées par le constructeur. Attention, il n'est pas nécessaire d'avoir sur votre ordinateur toutes les sorties détectées par XRandR. Certaines peuvent être bridées par le constructeur.
Ligne 53: Ligne 60:
 ==== Lister les propriétés disponibles ==== ==== Lister les propriétés disponibles ====
  
-L'option « --prop » permet d'obtenir un affichage encore plus détaillé des propriétés disponibles.+L'option ''%%--%%prop'' permet d'obtenir un affichage encore plus détaillé des propriétés disponibles.
 <code> <code>
-usr@pc:~$ xrandr --prop+xrandr --prop
 </code> </code>
 La sortie de cette commande renvoie une information analogue à l'affichage ci-dessous : La sortie de cette commande renvoie une information analogue à l'affichage ci-dessous :
Ligne 110: Ligne 117:
 ==== Fréquence listée dans les modes disponibles ==== ==== Fréquence listée dans les modes disponibles ====
 === Dimension de la fenêtre=== === Dimension de la fenêtre===
-Pour changer la résolution vers 1440x900 (plus haute fréquence disponible d'après la réponse du terminal), tapez dans un [[:terminal]]: <code>xrandr -s 1440x900</code>+Pour changer la résolution vers 1440x900 (plus haute résolution disponible d'après la réponse du terminal), tapez dans un [[:terminal]]: <code>xrandr -s 1440x900</code>
  
 === Fréquences de rafraîchissement === === Fréquences de rafraîchissement ===
Ligne 133: Ligne 140:
 Pour tester après une modification de configuration, il suffit de fermer puis réouvrir une session. Pour tester après une modification de configuration, il suffit de fermer puis réouvrir une session.
  
-  * **%%Deux écrans cote à cote : %%** +  * **%%Deux écrans cote à cote : %%**
 DP-2 est l'écran principal, DP-1 est **%%à droite%%** de DP-2, résolutions différentes : DP-2 est l'écran principal, DP-1 est **%%à droite%%** de DP-2, résolutions différentes :
 <code> <code>
Ligne 142: Ligne 149:
 Vous pouvez adapter la position de l'écran secondaire avec **%% --left-of, --right-of, --above, --below%%** en fonction de vos besoins. Vous pouvez adapter la position de l'écran secondaire avec **%% --left-of, --right-of, --above, --below%%** en fonction de vos besoins.
  
-  * **%%Deux écrans clonés, résolutions identiques (Clone dual screen) : %%** +  * **%%Deux écrans clonés, résolutions identiques (Clone dual screen) : %%**
 DP-2 est l'écran principal, DP-1 est identique à DP-2, les résolutions sont identiques : DP-2 est l'écran principal, DP-1 est identique à DP-2, les résolutions sont identiques :
 <code> <code>
Ligne 160: Ligne 167:
 ==== Fréquence non listée dans les modes disponibles ==== ==== Fréquence non listée dans les modes disponibles ====
  
-Il est tout à fait possible que votre écran supporte le mode //1280x1024 à 60Hz// mais que ce mode n'est actuellement pas listé dans les modes disponibles. Dans ce cas vous pouvez imposer la résolution de l'écran à cette dimension et cette fréquence avec ''xrandr''. Mais, si ce mode n'est pas supporté, vous obtiendrez un message ''Frequency out of range'' et vous ne verrez plus rien à l'écran... Vous pourrez éventuellement revenir à une résolution et une fréquence supportées en utilisant le paragraphe [[#Fréquence listée dans les modes disponibles|Fréquence listée dans les modes disponibles]] en aveugle (c'est à dire sans voir ce que l'on tape!).+Il est tout à fait possible que votre écran supporte le mode //1280x1024 à 60Hz// mais que ce mode ne soit actuellement pas listé dans les modes disponibles. Dans ce cas vous pouvez imposer la résolution de l'écran à cette dimension et cette fréquence avec ''xrandr''. Mais, si ce mode n'est pas supporté, vous obtiendrez un message ''Frequency out of range'' et vous ne verrez plus rien à l'écran... Vous pourrez éventuellement revenir à une résolution et une fréquence supportées en utilisant le paragraphe [[#Fréquence listée dans les modes disponibles|Fréquence listée dans les modes disponibles]] en aveugle (c'est à dire sans voir ce que l'on tape!).
  
 Pour obtenir un mode non listé, utilisez les programmes complémentaires **//gtf//** et **//sed//**.  Vous entrez la ligne de commande suivante, vous devriez bien entendu adapter les nombres 1280, 1024 et 60 à votre résolution cible : Pour obtenir un mode non listé, utilisez les programmes complémentaires **//gtf//** et **//sed//**.  Vous entrez la ligne de commande suivante, vous devriez bien entendu adapter les nombres 1280, 1024 et 60 à votre résolution cible :
Ligne 177: Ligne 184:
 Maintenant que la nouvelle résolution fonctionne, il faut l'activer pour l'avoir au prochain  démarrage de l'ordinateur. Une solution consiste à créer un script avec nos deux commandes et de le lancer au démarrage. Avec notre exemple, [[:tutoriel:comment_modifier_un_fichier|créez un fichier]] **Resolution.sh** avec ce qui suit comme contenu : Maintenant que la nouvelle résolution fonctionne, il faut l'activer pour l'avoir au prochain  démarrage de l'ordinateur. Une solution consiste à créer un script avec nos deux commandes et de le lancer au démarrage. Avec notre exemple, [[:tutoriel:comment_modifier_un_fichier|créez un fichier]] **Resolution.sh** avec ce qui suit comme contenu :
 <code bash> <code bash>
 +#!/bin/bash/
 xrandr --addmode HDMI 1440x900_60 xrandr --addmode HDMI 1440x900_60
 xrandr --output HDMI --mode 1440x900_60 xrandr --output HDMI --mode 1440x900_60
 +exit 0;
 </code> </code>
-rendez votre script [[:tutoriel:script_shell#executer_un_script|éxécutable]] et ajoutez-le enfin [[:tutoriel:application_demarrage|aux applications au démarrage]].+rendez votre script [[:tutoriel:script_shell#executer_un_script|éxécutable]] et ajoutez-le enfin [[:tutoriel:application_demarrage|aux applications au démarrage]] (cf. point suivant pour une explication détaillée de la procédure de créatoin d'un script).
 <note>Autre solution, sous Lubuntu (du moins la 16.04) : pour activer la résolution voulue aux prochaines démarrages, il suffit d'ouvrir l'éditeur des [[:configurer_son_ecran#lubuntu|paramètres d'affichage de Lubuntu]] et d’enregistrer la configuration (bouton "Enregistrer") pour que le système retrouve la résolution à l'avenir.</note> <note>Autre solution, sous Lubuntu (du moins la 16.04) : pour activer la résolution voulue aux prochaines démarrages, il suffit d'ouvrir l'éditeur des [[:configurer_son_ecran#lubuntu|paramètres d'affichage de Lubuntu]] et d’enregistrer la configuration (bouton "Enregistrer") pour que le système retrouve la résolution à l'avenir.</note>
-==== Ajouter une résolution ====+<note>Si un message d'erreur de type apparait : 
 +<code>xrandr: Configure crtc 0 failed</code> 
 +une piste serait de désactiver le serveur d'affichage WayLand (Ubuntu 24.04.3). Cf article https://askubuntu.com/questions/136139/xrandr-configure-crtc-0-failed-when-trying-to-change-resolution-on-external-m</note> 
 +==== Ajouter une résolution non listée==== 
 +La résolution de votre écran n'est pas disponible par défaut. C'est rare et ça arrive, on va voir comment gérer cela. 
 + 
 +Commencez par identifier votre écran : 
 +<code bash>xrandr | awk '/connected [^(]/{print $1}'</code> 
 + 
 +Par exemple comme réponse vous avez "eDP-1-1" comme identifiant, vous aurez à le remplacer par le votre dans les prochaines commandes. 
 + 
 +Si vous désirez essayer avec une résolution de 1920x1080 en 60hz (n.b. vérifiez si la carte graphique le supporte avant) 
 +Tapez la commande : 
 +<code bash>gtf 1920 1080 60</code> 
 + 
 +En retour vous aurez : <code bash># 1920x1080 @ 60.00 Hz (GTF) hsync: 67.08 kHz; pclk: 172.80 MHz 
 +Modeline "1920x1080_60.00"  172.80  1920 2040 2248 2576  1080 1081 1084 1118  -HSync +Vsync</code> 
 +   
 +Ce qui nous intéresse ici est la seconde ligne (# est toujours suivi d'un commentaire) 
 + 
 +Pour ajouter la résolution depuis xrandr cela donne donc : 
 +<code bash>xrandr --newmode "1920x1080_60.00"  172.80  1920 2040 2248 2576  1080 1081 1084 1118  -HSync +Vsync</code> 
 + 
 +et donc pour l'ajouter au menu ("eDP-1-1" sera à remplacer par votre identifiant d'écran) tapez : 
 +<code bash>xrandr --addmode eDP-1-1 1920x1080_60.00</code> 
 + 
 +Pour changer de résolution depuis le terminal : 
 +<code bash>xrandr -s 1920x1080_60.00</code> 
 + 
 +Cependant au redémarrage, ces modifications seront perdues, d'ou le chapitre suivant 
 + 
 +<note tip>Une autre méthode consiste à regarder les choix disponibles en lançant **arandr** puis en regardant les lignes de commandes xrandr avec le nom du ou des sorties dans le menu **Sortie**.</note> 
 + 
 + 
 +=== Rendre persistantes les modifications === 
 + 
 +== Créer le script == 
 +Reprenez les commandes précédentes (en modifiant les commandes au besoin) : 
 +<file bash>#!/bin/sh 
 +xrandr --newmode "1920x1080_60.00"  172.80  1920 2040 2248 2576  1080 1081 1084 1118  -HSync +Vsync 
 +xrandr --addmode eDP-1-1 1920x1080_60.00 
 +xrandr -s 1920x1080_60.00</file> 
 +'Ctrl+X' pour quitter, n'oubliez pas de sauvegarder en tapant "o"
 + 
 + 
 +== Lancer le script via /etc/X11/Xsession.d/ == 
 +La première méthode consiste à [[:tutoriel:comment_modifier_un_fichier|créer le fichier]] **45x11-xrandr** avec les [[:sudo|droits d'administration]] dans **/etc/X11/Xsession.d/**, en y mettant le script.
  
-Pour ajouter une résolution par exemple de ''1366x768_60'' sur une sortie VGA :  
-  * Demandez d'abord les informations sur la résolution avec la commande : <code>cvt 1366 768 60</code> 
-  * Puis copiez les informations données en retour : <code>"1366x768_60.00"   85.25  1368 1440 1576 1784  768 771 781 798 -hsync +vsync</code> 
-  * Essayez la résolution dans la console : <code>xrandr --newmode "1366x768_60.00"   85.25  1368 1440 1576 1784  768 771 781 798 -hsync +vsync 
-xrandr --addmode VGA1 1366x768_60.00</code> 
-  * Pour la persistance [[:tutoriel:comment_modifier_un_fichier|créez le fichier]] **45x11-xrandr** avec les [[:sudo|droits d'administration]] dans **/etc/X11/Xsession.d/**, en y mettant les 2 lignes ci-dessus. 
  
-Une autre méthode consiste à regarder les choix disponibles en lançant **arandr** puis en regardant le nom du ou des sorties dans le menu **Sortie**.+== Lancer le script via ~/.xprofile == 
 +Créez un fichier "~/.xprofile" et copiez y le script
  
-=== Avec un script ===+== Lancer le script via le lancement d'application au démarrage ==
 Une autre méthode, peut-être plus artisanale mais efficace, consiste à préparer un script qui sera lancé avec applications au démarrage. Une autre méthode, peut-être plus artisanale mais efficace, consiste à préparer un script qui sera lancé avec applications au démarrage.
  
-Le script ci-dessous permet d'utiliser un écran de résolution 1366x768 avec une sortie écran dont la résolution maximale est 1024x768. +Ajouter au script précédent :
 <code>#!/bin/bash <code>#!/bin/bash
-# Adaptation de la résolution d'écran à celle du LG Flatron E1960S 
-xrandr --newmode "1366x768_60.00"   84.75  1366 1432 1568 1776  768 771 781 798 -hsync +vsync 
-xrandr --addmode DP-1 1366x768_60.00 
-xrandr --output DP-1 --mode 1366x768_60.00 
 gsettings set org.gnome.desktop.background picture-uri file:///usr/share/backgrounds/Xerus_Wallpaper_Grey_4096x2304.png gsettings set org.gnome.desktop.background picture-uri file:///usr/share/backgrounds/Xerus_Wallpaper_Grey_4096x2304.png
 gsettings set org.gnome.desktop.background picture-uri file:///usr/share/backgrounds/TCP118v1_by_Tiziano_Consonni.jpg gsettings set org.gnome.desktop.background picture-uri file:///usr/share/backgrounds/TCP118v1_by_Tiziano_Consonni.jpg
 exit 0; exit 0;
 </code> </code>
 +
 Le script est enregistré dans un fichier texte (adapt_resolution.sh par exemple) auquel les droits d’exécution sont accordés : Le script est enregistré dans un fichier texte (adapt_resolution.sh par exemple) auquel les droits d’exécution sont accordés :
 <code> <code>
 chmod gua+x  adapt_resolution.sh chmod gua+x  adapt_resolution.sh
 </code> </code>
-Ensuite, sélectionner « applications au démarrage » parmi les applications d'Ubuntu. +Ensuite, sélectionner « applications au démarrage » parmi les applications d'Ubuntu.
 {{ ::rchrapplic.png?nolink&600 |}} {{ ::rchrapplic.png?nolink&600 |}}
 Choisir « Ajouter » parmi les options proposées : Choisir « Ajouter » parmi les options proposées :
Ligne 222: Ligne 269:
 ==== Pivoter l'affichage ==== ==== Pivoter l'affichage ====
  
-Pour pivoter l'affichage (utilisation d'un écran en mode portrait par exemple), il est nécessaire d’utiliser l'option « --rotate » suivie du sens de rotation et précédée du nom de l'écran concerné. +Pour pivoter l'affichage (utilisation d'un écran en mode portrait par exemple), il est nécessaire d’utiliser l'option ''%%--%%rotate'' suivie du sens de rotation et précédée du nom de l'écran concerné. 
  
 Les options de rotation disponibles sont : Les options de rotation disponibles sont :
-|« normal » | orientation par défaut (selon l'écran, généralement paysage ou portrait) | +|''normal'' | orientation par défaut (selon l'écran, généralement paysage ou portrait) | 
-|« left » | pivoté de 90° vers la gauche par rapport à l’orientation « normal » | +|''left'' | pivoté de 90° vers la gauche par rapport à l’orientation « normal » | 
-|« right » | pivoté de 90° vers la droite par rapport à l’orientation « normal » | +|''right'' | pivoté de 90° vers la droite par rapport à l’orientation « normal » | 
-|« inverted » | pivoté de 180° (à l'envers) par rapport à l'orientation « normal » | +|''inverted'' | pivoté de 180° (à l'envers) par rapport à l'orientation « normal » | 
  
 Ainsi, pour un écran nommé « eDP1 » dont l'affichage doit être tourné vers la gauche, la commande sera la suivante : Ainsi, pour un écran nommé « eDP1 » dont l'affichage doit être tourné vers la gauche, la commande sera la suivante :
Ligne 278: Ligne 325:
 </code> </code>
      
-Vous pouvez créer un fichier **[[xorg|xorg.conf]]** en adaptant les données : +Vous pouvez créer un fichier **[[xorg|xorg.conf]]** en adaptant les données :
    
 <file xorg.conf> <file xorg.conf>
Ligne 341: Ligne 388:
  EndSection  EndSection
 </file> </file>
 +
 +
 +Pour plus de détail, voir l'article hyper complet en Anglais sur xrandr sur [[https://askubuntu.com/questions/710172/why-do-xrandr-errors-badmatch-badname-gamma-failed-happen|askubuntu.com]]
 ==== Conserver les paramètres ==== ==== Conserver les paramètres ====
  
Ligne 349: Ligne 399:
 Enregistrez et quittez. Dorénavant, la résolution sera augmentée automatiquement lors de chaque connexion. Enregistrez et quittez. Dorénavant, la résolution sera augmentée automatiquement lors de chaque connexion.
  
-===== Ajouter et appliquer une résolution non listée ===== 
- 
-Commencez par identifiez votre écran : 
-<code bash>xrandr | grep -e " connected [^(]" | sed -e "s/\([A-Z0-9]\+\) connected.*/\1/"</code> 
- 
-Par exemple comme réponse vous avez "eDP-1-1" comme identifiant, vous aurez à le remplacer par le votre dans les prochaines commandes. 
- 
-Si vous désirez essayer avec une résolution de 1920x1080 en 60hz (n.b. vérifiez si la carte graphique le supporte avant) 
-Tapez la commande : 
-<code bash>gtf 1920 1080 60</code> 
- 
-En retour vous aurez : <code bash># 1920x1080 @ 60.00 Hz (GTF) hsync: 67.08 kHz; pclk: 172.80 MHz 
-Modeline "1920x1080_60.00"  172.80  1920 2040 2248 2576  1080 1081 1084 1118  -HSync +Vsync</code> 
-   
-Ce qui nous intéresse ici est la seconde ligne (# est toujours suivi d'un commentaire)   
- 
-Pour ajouter la résolution depuis xrandr cela donne donc : 
-<code bash>xrandr --newmode "1920x1080_60.00"  172.80  1920 2040 2248 2576  1080 1081 1084 1118  -HSync +Vsync</code> 
- 
-et donc pour l'ajouter au menu ("eDP-1-1" sera à remplacer par votre identifiant d'écran) tapez : 
-<code bash>xrandr --addmode eDP-1-1 1920x1080_60.00</code> 
- 
-Pour changer de résolution depuis le terminal : 
-<code bash>xrandr -s 1920x1080_60.00</code> 
- 
-Cependant à redémarrage ces modifications seront perdues, pour l'éviter créez un fichier "~/.xprofile" 
-en tapant la commande : 
-<code bash>>.xprofile</code> 
-puis nano pour editer : 
-<code bash>nano .xprofile</code> 
-copiez y (en modifiant les commandes au besoin) : 
-<file bash>#!/bin/sh 
-xrandr --newmode "1920x1080_60.00"  172.80  1920 2040 2248 2576  1080 1081 1084 1118  -HSync +Vsync 
-xrandr --addmode eDP-1-1 1920x1080_60.00 
-xrandr -s 1920x1080_60.00</file> 
-'Ctrl+X' pour quitter, n'oubliez pas de sauvegarder en tapant "o". 
  
 +===== Ajouter des écrans virtuels =====
 +Si vous souhaitez des écrans virtuels VIRTUALX, voir ce lien : https://askubuntu.com/questions/453109/add-fake-display-when-no-monitor-is-plugged-in
  
 ===== Voir aussi ===== ===== Voir aussi =====