Gérer son(ses) écran(s) avec xrandr
Xrandr est un outil en ligne de commande qui utilise l'extension RandR de Xorg afin de gérer les paramètres d'affichage de vos écrans comme :
- La taille
- Le redimensionnement
- La rotation
- Le multi-écrans
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 2ème écran ou bien faire du dualhead. Cependant pour profiter de cette extension il faut :
- Un xorg 7.x, inutile de penser à un Xorg 6.9 par exemple.
- Un pilote vidéo compatible comme celui de Intel ou de Nvidia ( celui d'Ati n'est pas compatible )
Si tout est bon sur votre système alors vous pouvez vous lancer dans la découverte de xrandr. Pour afficher les différents écrans connecter à son serveur X on commencera par taper :
user@linux$ xrandr
Screen 0: minimum 320 x 200, current 2464 x 900, maximum 2880 x 900
VGA disconnected 1024x768+1440+0 (normal left inverted right) 338mm x 270mm
LVDS connected 1440x900+0+0 (normal left inverted right) 303mm x 190mm
1440x900 60.0*+ 60.0 58.9 50.0
1152x768 54.8
1024x768 60.0 60.0 58.8
800x600 60.3 60.0 56.2 58.7
640x480 59.9
TMDS-1 disconnected (normal left inverted right)
On peut ainsi voir toutes les résolutions disponibles pour chaque écran connecté. Dans mon exemple ci-dessus je n'en ai qu'un. A présent si je branche un 2ème écran sur mon connecteur VGA et que je relance xrandr :
user@linux$ xrandr
Screen 0: minimum 320 x 200, current 1440 x 900, maximum 2880 x 900
VGA connected (normal left inverted right)
1440x900 60.0 58.9
1024x768 60.0 60.0 58.8
800x600 60.3 60.0 58.7
640x480 60.0
LVDS connected 1440x900+0+0 (normal left inverted right) 303mm x 190mm
1440x900 60.0*+ 60.0 58.9 50.0
1152x768 54.8
1024x768 60.0 60.0 58.8
800x600 60.3 60.0 56.2 58.7
640x480 59.9
TMDS-1 disconnected (normal left inverted right)
Mon écran est bel et bien détecté :) Cependant rien ne s'affiche dessus encore car je n'ai pas indiqué à RandR ce que je souhaite faire avec. Par exemple si on veut l'utiliser en mode clone (le même affichage sur les 2 écrans) :
user@linux$ xrandr --auto
Screen 0: minimum 320 x 200, current 1440 x 900, maximum 2880 x 900
VGA connected 1440x900+0+0 (normal left inverted right) 338mm x 270mm
1440x900 60.0* 58.9
1024x768 60.0 60.0 58.8
800x600 60.3 60.0 58.7
640x480 60.0
LVDS connected 1440x900+0+0 (normal left inverted right) 303mm x 190mm
1440x900 60.0*+ 60.0 58.9 50.0
1152x768 54.8
1024x768 60.0 60.0 58.8
800x600 60.3 60.0 56.2 58.7
640x480 59.9
TMDS-1 disconnected (normal left inverted right)
xrandr a automatiquement sélectionné la meilleure résolution pour mon 2ème écran. Si vous souhaitez diminuer cette résolution il faudra préalablement le faire avec Kde, Gnome, ... (Exemple pour gnome : gnome-display-properties)
Et si maintenant on souhaite utiliser notre 2ème écran en mode portrait pour une présentation, ... ? Aucun problème :
user@linux$ xrandr --output VGA --rotate leftOn peut tourner son écran dans tous les sens, les mots-clés sont : left, right, inverted et normal.
Et enfin le meilleur pour la fin, le bureau étendue :) Oubliez la complexité de Xinerama et tapez juste :
user@linux$ xrandr --output VGA --right-of LVDSRemarque : VGA et LVDS sont les noms de mes 2 écrans affichés par la commande xrandr.
Vous pouvez également utiliser des paramètres différents comme : --left-of ou --above et même sépcifier une position x,y dans le cas où vous disposeriez d'un mur entier d'écran !
Cerise sur le gâteau, si vous utilisez l'application Impress de OpenOffice vous serez agréablement surpris que le mode diaporama se lance automatique sur le bon écran et vous laisse la main sur l'autre afin d'exécuter des programmes, ...