| Les deux révisions précédentesRévision précédenteProchaine révision | Révision précédente |
| xrandr [Le 26/01/2019, 13:23] – [Ajouter une résolution] Zococo | xrandr [Le 27/09/2025, 14:56] (Version actuelle) – [Activer la résolution choisie] 90.127.53.1 |
|---|
| {{tag>Xenial Trusty écran personnalisation résolution}} | {{tag>Focal écran personnalisation résolution}} |
| |
| ---- | ---- |
| 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 ==== |
| |
| </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 4 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 5 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. |
| ==== 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 : |
| ==== 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 === |
| 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> |
| 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> |
| ==== 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 : |
| 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 : |
| ==== 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 : |
| </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> |
| 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 ==== |
| |
| 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 ===== |