Configurer le multi-écran
Le multi-écran1) est pris en charge nativement par la plupart des environnements. En mode bureau étendu, les écrans peuvent avoir des résolutions différentes.
Le comportement peut légèrement varier en fonction de l'environnement choisi.
Par défaut (avec Gnome Shell), les réglages et choix d'options se font via les paramètres système. Ça permet notamment de régler la résolution de chaque écran ainsi que de les positionner les uns par rapport aux autres (par glisser-déposer).
Vous pouvez réaliser l'ensemble de votre configuration en utilisant l'outil graphique Arandr, quel que soit votre environnement de bureau.
Visualisation des écrans connectés
Commande pour voir les connecteurs d'écrans détectés par le système
find /sys/devices/ -iname edid
/sys/devices/pci0000:00/0000:00:02.0/drm/card0/card0-LVDS-1/edid /sys/devices/pci0000:00/0000:00:02.0/drm/card0/card0-VGA-1/edid
Commande pour identifier ceux qui sont connectés. (xrandr)
xrandr
Screen 0: minimum 8 x 8, current 1920 x 1080, maximum 32767 x 32767 LVDS1 connected primary 1920x1080+0+0 (normal left inverted right x axis y axis) 410mm x 230mm 1920x1080 60.00*+ 59.93 1680x1050 59.88 1400x1050 59.98 1600x900 60.00 59.95 59.82 1280x1024 60.02 1400x900 59.96 59.88 1280x960 60.00 1368x768 60.00 59.88 59.85 1280x800 59.81 59.91 1280x720 59.86 60.00 59.74 1024x768 60.00 1024x576 60.00 59.90 59.82 960x540 60.00 59.63 59.82 800x600 60.32 56.25 864x486 60.00 59.92 59.57 640x480 59.94 720x405 59.51 60.00 58.99 640x360 59.84 59.32 60.00 VGA1 disconnected (normal left inverted right x axis y axis) VIRTUAL1 disconnected (normal left inverted right x axis y axis)
Modifier la disposition des écrans
Il arrive lorsque que l'on utilise plusieurs moniteurs, que l'agencement des écrans soit chamboulé à l'ouverture de la session, ceci arrive notamment lorsque l'on ne se base que sur l'outil d'un pilote propriétaire.
Pour Gnome Shell
Afin de retrouver la disposition d'affichage souhaité à chaque ouverture de session nous allons tout simplement utiliser l'outil mis à disposition par Gnome. Paramètre système → Périphériques → Écrans, un petit Appliquer et le tour est joué.
Changer le moniteur principal va modifier l'écran où apparaît la barre supérieure de Gnome Shell, bien que des extensions existent pour modifier ce comportement.
sudo cp ~/.config/monitors.xml /var/lib/gdm3/.config/
Pour KDE Plasma
Dans Menu → Paramètres Système → Affichage et Écran (dans la section Matériel).
Pour Mate
Dans Menu → Système → Préférences → Matériel → Écran.
Pour Xfce
Depuis le menu de démarrage: Paramètres → Affichage.
Multi-écran avec un autre appareil écran (tablette, ordinateur, téléphone, ...)
Une solution qui semble l'une des plus "faciles" est :
- Configurer Linux pour que VNC soit vu comme un écran supplémentaire
- Utiliser VNC pour prendre le contrôle de la tablette
Les étapes sont donc :
- Installer VNC server sur Linux
- Configurer xrandr pour avoir un écran virtuel
- Lancer VNC serveur
- Installer VNC client sur l'appareil écran
Cette page en Anglais donne plus de détails
Si l'environnement de bureau a du mal à gérer le multi-écran
Nous allons voir ici plusieurs méthodes avancées pour utiliser le multi-écran :
- Xrandr
- ATI/AMD Eyefinity
- Xinerama (maintenant pris en charge au travers de Xrandr)
- Xinerama avec plusieurs cartes graphiques
- Un bureau avec 2 écrans de configurations différentes (vidéoprojecteur ou Télé)
- Disper
lspci | grep VGA
Xrandr : double écrans
Il est à noter que cette solution semble la plus rapide et la plus efficace car :
- xorg.conf peut être modifié
- xrandr permettra par la suite de modifier les configurations sans relancer X
- indépendante de la carte graphique
Voir la page dédiée XRandR
ATI/AMD Eyefinity : 3 écrans ou plus
Eyefinity est une solution valable uniquement pour les cartes ATI/AMD supportant la technologie "Eyefinity". Il s'agit de la solution idéale pour tous ceux qui souhaitent gérer 3 écrans ou plus (jusqu'à 6 ou 12 écrans selon les cartes compatibles Eyefinity). A ce jour, c'est également la seule solution valable pour conserver l'accélération 3D (Compiz) sur un bureau étendu sur 3 écrans ou plus.
Prérequis :
- carte graphique ATI / AMD compatible Eyefinity : http://www.amd.com/us/products/technologies/amd-eyefinity-technology/Pages/eyefinity.aspx
- possibilité de brancher 2 écrans sur les sorties DVI / HDMI / VGA / Displayport (avec éventuellement convertisseur passif)
- les écrans 3, 4, 5, 6 et suivants doivent être impérativement connectés sur un écran Displayport ou utiliser des convertisseur Displayport → DVI ou Displayport → VGA ou Displayport → HDMI de type actif
- les convertisseurs Displayport de type actif peuvent supporter une résolution allant jusqu'au 1920 sans alimentation USB ('single link'). Pour des résolutions supérieures, il faut utiliser des convertisseurs avec alimentation USB ('dual link')
Configuration :
- installer le package apt://arandr (permet de configurer xrandr graphiquement)
- installer les drivers ATI
- redémarrer
- lancer arandr (système / préférences)
- une fois les différents écrans positionnés, enregistrer la configuration dans un fichier.
- copier le contenu de ce fichier dans le fichier /etc/X11/Xsession.d/45x11-xrandr (permet de relancer la configuration xrandr automatiquement à chaque démarrage)
Informations supplémentaires :
- le bureau ne pourra être étendu que sur les écrans branchés sur une seule et même carte
- si plusieurs cartes graphiques eyefinity sont présentes, il y aura autant de bureau que de cartes graphiques.
- certains convertisseurs displayport → HDMI / DVI / VGA sont capricieux, utiliser si possible les convertisseurs de type actifs et compatibles eyefinity (souvent fabriqués par les fabricants de carte graphique)
- la configuration proposée ci-dessus par xrandr (+ arandr) permet d'éviter de se servir de l'outil de configuration ATI/AMD qui offre moins de souplesse que xrandr
XineRama avec deux cartes graphiques NVidia
Cette configuration vous permet de promener une application d'un écran a l'autre, bien que chaque écran soit sur une carte graphique différente.
Pour utiliser le mode multi-cartes graphiques, il va falloir mettre la main dans le fichier /etc/X11/xorg.conf
Avant de faire quoi que ce soit une bonne chose est de sauvegarder votre fichier de configuration xorg.conf actuel.
Commencez par sauvegarder votre fichier de configuration xorg.conf. Dans un terminal, entrez :
sudo cp /etc/X11/xorg.conf /etc/X11/xorg.conf.ok
En cas d'échec de vos tentatives de configuration, vous pourrez rétablir la configuration précédente avec :
sudo cp /etc/X11/xorg.conf.ok /etc/X11/xorg.conf
Après identification des cartes graphiques ( commande lspci ) il faut renseigner chaque carte avec son BusID
Section "Device" Identifier "Device0" Driver "nvidia" VendorName "NVIDIA Corporation" BusID "PCI:1:0:0" EndSection Section "Device" Identifier "Device1" Driver "nvidia" VendorName "NVIDIA Corporation" BusID "PCI:7:0:0" EndSection
Ensuite on relie chaque carte à son écran
Section "Monitor" Identifier "Monitor0" EndSection Section "Monitor" Identifier "Monitor1" EndSection Section "Screen" Identifier "Screen0" Device "Device0" Monitor "Monitor0" DefaultDepth 24 Option "RenderAccel" "true" Option "AllowGLXWithComposite" "true" SubSection "Display" Depth 24 EndSubSection EndSection Section "Screen" Identifier "Screen1" Device "Device1" Monitor "Monitor1" DefaultDepth 24 Option "RenderAccel" "true" Option "AllowGLXWithComposite" "true" SubSection "Display" Depth 24 EndSubSection EndSection
Il ne reste plus qu'à placer les écrans comme on a envie
Section "ServerLayout" Identifier "Layout0" Screen 0 "Screen0" 0 0 Screen 1 "Screen1" RightOf "Screen0" InputDevice "Keyboard0" "CoreKeyboard" InputDevice "Mouse0" "CorePointer" Option "Xinerama" "1" EndSection
Disper
Disper est un programme qui gagne à être connu tant il est simple d'utilisation. Il gère automatiquement les résolutions, et fonctionne plutôt bien avec les cartes graphiques de type Nvidia
Le site officiel de disper est le suivant : https://willem.engen.nl/projects/disper/
Pour l'installer, il suffit de télécharge le fichier disper_0.3.0.tar.gz ( le dernier en date au moment ou j'écris ces lignes )
wget http://ppa.launchpad.net/disper-dev/ppa/ubuntu/pool/main/d/disper/disper_0.3.0.tar.gz tar -xvzf disper_0.3.0.tar.gz rm disper_0.3.0.tar.gz cd dispercur/ sudo make install
Maintenant que disper est installé, passons aux commandes de base :
- Cloner l'écran principal sur l'écran secondaire :
disper -c
- Etendre sur le second écran par la droite :
disper -e -t right
- Revenir à la configuration initiale :
disper -s
- Afficher uniquement l'écran secondaire :
disper -S
La page de man de ce programme est également disponible, et vous donnera des informations plus précises
On peut faciliter l'utilisation de ces commandes en utilisant l'interface graphique zenity avec un petit script (lancé par exemple par une combinaison de touche) :
#!/bin/bash ret=$(zenity --title="Sélectionner un affichage" \ --list 1 "écran ordinateur" 2 "écran extérieur" 3 "copier sur un écran extérieur" 4 "étendre à l'écran extérieur" --column="id" \ --column="Sélectionner un affichage" --hide-column=1 --print-column=1) [ -z "$ret" ] && exit case "$ret" in "1") echo "1" disper -s;; "2") echo "2" disper -S;; "3") echo "3" disper -c;; "4") echo "4" disper -e;; esac
Anciennes méthodes
Sur les ordinateurs portables l'écran par défaut n'est pas forcement celui que l'on croit.
Cas du vidéoprojecteur : vous êtes en conférence et le vidéoprojecteur refuse de transmettre l'image à votre écran. Allez sur cette page. Vous y trouverez peut-être comment remédier à la honte qui s'abat sur vous en 5 minutes…
Avant de faire quoi que ce soit une bonne chose est de sauvegarder votre fichier de configuration xorg.conf actuel.
Commencez par sauvegarder votre fichier de configuration xorg.conf. Dans un terminal, entrez :
sudo cp /etc/X11/xorg.conf /etc/X11/xorg.conf.ok
En cas d'échec de vos tentatives de configuration, vous pourrez rétablir la configuration précédente avec :
sudo cp /etc/X11/xorg.conf.ok /etc/X11/xorg.conf
Xinerama et Dual-Desktop : double écran indépendant du pilote
Cette méthode est indépendante du type de pilote utilisé, et vous permet d'obtenir un double affichage, quelle que soit votre (ou vos) carte graphique et le type d'écran (CRT-CRT, LCD-CRT, CRT-TV, LCD-TV etc…), à condition bien sûr que la carte graphique possède 2 sorties (VGA, DVI, ou S-video).
Si vous possédez plusieurs cartes la méthode simple consiste à les insérer une à la fois et sauvegarder le xorg.conf généré, puis fusionner ces différents fichiers.
Remarque pour les détenteurs de cartes à chipset ATI :
Pour le double bureau sous Ubuntu 7.04 (et supérieur) une fois les pilotes propriétaires installés à l'aide du "Gestionnaire de pilotes propriétaires" (pour KDE : Menu K → Paramètres du système → onglet Avancé → Pilotes propriétaires), exécutez la commande :
sudo aticonfig --initial=dual-head
permet une configuration automatique du Double bureau. Il n'y a plus qu'à rajouter l'option Xinerama au xorg.conf ainsi créé (voir plus bas).
Ceci dit, il vous sera préférable, quelque soit le constructeur de votre carte, de mettre le pilote propriétaire, généralement fourni avec la distribution, ou sinon facilement téléchargeable. Ce pilote propriétaire permet dans certains cas d'obtenir des fonctions (un peu) plus pointues que celles fournies par des pilotes libres (voir pour nvidia).
XineRama
Cette configuration vous permet de promener une application d'un écran a l'autre, contrairement à la méthode précédente.
"Xinerama est une extension du X Window System" d'après Xinerama sur wikipedia
Le début de ce paragraphe est très fortement inspiré du Dual Monitor Support With Xinerama HowTo:
Le HOWTO Xinerama en français est bien sûr utile…
Activation
Pour activer Xinerama il suffit de faire comme pour le double écran (voir plus haut puis de modifier la Section ServerLayout, afin d'y ajouter la ligne :
Option "Xinerama" "true"
ce qui donne quelque chose comme ça :
Screen 0 "Default Screen" Screen 1 "Ecran 2" <position> "Default Screen" Option "Xinerama" "true"
<position> peut prendre les valeurs RightOf (à droite de), Below (en-dessous de), Above (au-dessus de), LeftOf (à gauche de), Absolute X Y, Relative.
Complément d'information
Pour activer ou désactiver le double écran il suffit de commenter la partie décrivant l'écran 2 ainsi que xinerama si vous l'aviez activé
Screen 0 "Default Screen" #Screen 1 "Ecran 2" <position> "Default Screen" #Option "Xinerama" "true"
Pour activer ou désactiver Xinerama et ainsi passer en dual-Desktop il suffit de commenter la ligne activant Xinerama
Screen 0 "Default Screen" Screen 1 "Ecran 2" <position> "Default Screen" #Option "Xinerama" "true"
Les petits soucis
- Au démarrage de X, il ne sait pas s'il y a un ou plusieurs écrans.
J'ai résolu le problème en désactivant Xinerama avant de passer en simple écran … une autre solution existe, plutôt complexe et documentée en anglais : https://ubuntuforums.org/showthread.php?t=361124
- L'arrière plan du bureau est commun aux 2 écrans.
Il faut donc un arrière plan assez large… Ou le mettre en mosaïque…
- On doit mettre le tableau de bord de façon à ce qu'il ne coupe pas en deux le double-écran. Dans le cas d'un écran au dessus de l'autre : mettre le tableau de bord en bas pour celui du bas, cliquer dessus et sélectionner "nouveau tableau de bord", prendre le nouveau tableau de bord avec la souris pour le placer en haut de l'écran du dessus. On ne peut pas mettre un tableau de bord sur le second écran
Twinview (Nvidia): un bureau étendu
Introduction
Twinview est une fonction présente dans les cartes Nvidia (d'après 2002 environ) (Geforce 2MX et plus) une liste qui semblerait être compatible, en tout cas avec les pilotes propriétaires de Nvidia est disponible sur le site web de Nvidia (indisponible).
L'installation des pilotes propriétaires de Nvidia est nécessaire pour activer cette fonction.
2 possibilités s'offrent à vous :
La première consiste à utiliser un petit outil fourni avec le pilote propriétaire. Cet outil s'apparente à NView sous Windows.
Avant toute chose, il vaut mieux s'assurer que c'est bien le pilote nvidia qui travaille. Après installation du pilote, dans un terminal tapez :
sudo nvidia-xconfig --twinview
Ceci aura pour conséquence de réécrire un fichier de configuration X en intégrant le fait que vous voulez twinview (en fait ça rajoute juste twinview "true") et en en faisant une sauvegarde (/etc/X11/xorg.conf.backup normalement).
Ceci fait, on s'assure que c'est bien paramétré et que ça marche (on redémarre X, soit en déconnectant, soit par Ctrl+Alt+⌫).
Une fois reconnecté, tapez dans votre terminal préféré :
sudo nvidia-settings
Si l'outils de configuration nvidia-settings n'est pas installé tapez dans votre terminal :
sudo apt-get install nvidia-settings
Une interface graphique va s'ouvrir, modifiez alors à votre guise.
Il suffit d'aller dans le onglet "X Server Display Configuration" et activer le 2ème écran en appuyant sur "Configure", puis sélectionner TwinView. Ensuite choisir les résolutions souhaitées, etc. Finalement, appuyer sur Apply pour appliquer la configuration. La barre des menus sera étendue sur les 2 écrans. Pas de panique .. Il suffira de sauvegarder en cliquant sur "Save to X Configuration file", puis relancer le X avec CTRL+ALT+BACKSPACE.
La deuxième possibilité consiste à faire soi-même le paramétrage de X.
N'oubliez en aucun cas de faire une copie de sauvegarde du fichier /etc/X11/xorg.conf (voir plus haut).
Xorg
Éditez le fichier /etc/X11/xorg.conf.
Configuration manuelle
Trouvez la section Device. Exemple :
Section "Device" Identifier "NVIDIA Corporation NV25 [GeForce4 Ti 4200]" Driver "nvidia" BusID "PCI:1:0:0" Option "NoLogo" EndSection
Et ajoutez-y les lignes suivantes :
Option "TwinView" "true" Option "MetaModes" "1280x1024, 1280x1024; 1024x768, 1024x768" Option "SecondMonitorHorizSync" "65-85" Option "SecondMonitorVertRefresh" "50-160" Option "TwinViewOrientation" "RightOf"
Modifiez les valeurs suivant votre configuration :
- MetaModes : cette option définit les deux résolutions utilisées par vos deux écrans. Les deux résolutions d'un mode sont séparées par une virgule et chaque couple est séparé par un point-virgule. Dans l'exemple ci-dessus, les deux résolutions totales seront de 2560x1024 et 2048x768;
- SecondMonitorHorizSync & SecondMonitorVertRefresh : ce sont les valeurs de rafraîchissement à modifier éventuellement suivant votre deuxième écran;
- TwinViewOrientation : ce paramètre modifie la positionnement de votre deuxième écran par rapport au premier : LeftOf ou RightOf ou Above ou Below.
Toutefois, si votre 2e écran est une TV, pas la peine de vous acharner avec SecondMonitor… C'est l'encoder de la carte qui définit elle-même ce qu'il faut. Et toujours dans le cas d'une TV, les options « TVOutFormat » et « TVStandard » doivent être indiquées (en cas de « noir et blanc » par exemple).
Activer ou désactiver rapidement le 2e écran
Cela peut s'avérer utile quand on veut lancer une application plein-écran qui divise son affichage entre les deux écrans. Le moyen le plus rapide est de faire deux fichiers modèles de votre xorg.conf (un avec les options twinview et un autre sans) que nous appellerons xorg_mono.conf et xorg_dual.conf :
sudo cp /etc/X11/xorg.conf /etc/X11/xorg_mono.conf sudo cp /etc/X11/xorg.conf /etc/X11/xorg_dual.conf
Editez l'un ou l'autre de ces deux fichiers suivant que vous ayez le multi-écran activé ou pas. Pour remplacer rapidement le fichier « xorg.conf » avec un des deux modèles, nous allons créer deux petits scripts cachés dans votre dossier personnel : « .monoscreen » et « .dualscreen ».
Créez ou éditez le dossier ~/.monoscreen et ajoutez-y ceci :
sudo cp /etc/X11/xorg_mono.conf /etc/X11/xorg.conf
Créez ou éditez à présent le dossier ~/.dualscreen et ajoutez-y ceci :
sudo cp /etc/X11/xorg_dual.conf /etc/X11/xorg.conf
Pour permettre l'exécution, allez dans les propriétés des fichiers, onglet Permissions :
Cochez au moins la première case de la colonne Exécution.
Ensuite pour lancer les scripts avec les privilèges administrateurs, créez deux lanceurs sur le bureau ou dans le panel avec la commande « gksudo $HOME/.monoscreen
» et « gksudo $HOME/.dualscreen
».
Pour les utilisateurs de KDE, remplacez « gksudo » par « kdesu ».
Une fois le script exécuté, il ne reste plus qu'à redémarrer le serveur X (Ctrl+Alt+⌫).
Problème clavier en qwerty
Il se peut qu'en utilisant les outils ci-dessus, notamment "nvidia-settings", votre bureau se retrouve avec le clavier en qwerty. Pour remédier à ça, il faut que vous éditiez votre fichier /etc/X11/xorg.conf, puis trouvez la section :
Section "InputDevice" # generated from default Identifier "Keyboard0" Driver "kbd" EndSection
Ajoutez y les options :
Option "XkbModel" "pc105" Option "XkbLayout" "fr-latin9"
Ce qui doit donner :
Section "InputDevice" # generated from default Identifier "Keyboard0" Driver "kbd" Option "XkbModel" "pc105" Option "XkbLayout" "fr-latin9" EndSection
Problème avec Compiz
Si vous rencontrez des problèmes de lenteurs avec les menus contextuels et une saccade des animations sur un des écrans, utilisez ce petit script au démarrage de votre session et tout rentrera dans l'ordre.
Tout d'abord
- On ouvre gedit et on copie le script bash ci-dessous
#!/bin/bash DISPLAY=":0.0" compiz --replace --only-current-screen & DISPLAY=":0.1" compiz --replace --only-current-screen & DISPLAY=":0.0" emerald --replace & DISPLAY=":0.1" emerald --replace &
Une fois sauvegardé, autorisez le script a être exécuté
- Clic droit > Propriété > Permissions
Et on coche "Autoriser l'exécution du fichier comme un programme"
Maintenant direction l'utilitaire de session d'Ubuntu:
- Système > Préférence > Session
On créer un nouvel élément dont la commande a exécuter pointera vers notre script.
Si le script ne fonctionne pas correctement au démarrage de la machine, rajoutez-y au début : sleep 20 (ou moins si votre machine est rapide), histoire de décaler un peu le moment de lancement du script.
Et voila, c'est le retour de la fluidité!
Note: Si vous utilisez des options supplémentaire (loose binding, etc..) de compiz, n'oubliez pas de les rajouter dans le script.
Problème twinview avec TV cathodique non détectée
Après de multiples tentatives avec une télé qu'on arrivait pas à faire détecter par la méthode twinview, on a trouvé une façon de configurer un xorg.conf qui permet de forcer la détection de cette (vieille) télé par le pilote nvidia. L'astuce consiste à rajouter dans l'option ConnectedMonitor l'argument TV-0 et non TV tout court…
Voici le xorg.conf en entier
Section "ServerLayout" Identifier "Default Layout" Screen 0 "Screen0" 0 0 InputDevice "Generic Keyboard" "CoreKeyboard" InputDevice "Configured Mouse" EndSection Section "Module" Load "glx" EndSection Section "InputDevice" Identifier "Generic Keyboard" Driver "kbd" Option "XkbRules" "xorg" Option "XkbModel" "pc105" Option "XkbLayout" "fr" Option "XkbVariant" "oss" EndSection Section "InputDevice" Identifier "Configured Mouse" Driver "mouse" Option "CorePointer" EndSection Section "Monitor" Identifier "Television" #TV HorizSync 30-50 VertRefresh 60 EndSection Section "Monitor" Identifier "Monitor0" VendorName "Unknown" ModelName "ViewSonic E651-3" HorizSync 30.0 - 56.0 VertRefresh 50.0 - 120.0 EndSection Section "Device" Identifier "Videocard0" Driver "nvidia" VendorName "NVIDIA Corporation" BoardName "GeForce 7600 GS" Option "NoLogo" "True" Option "TVOutFormat" "SVIDEO" Option "TVStandard" "PAL-B" #Option "UseDisplayDevice" "CRT-1, TV" Option "ConnectedMonitor" "CRT-1, TV-0" EndSection Section "Screen" Identifier "Screen0" Device "Videocard0" Monitor "Monitor0" DefaultDepth 24 Option "NoLogo" "True" Option "TwinView" "true" Option "TwinViewOrientation" "RightOf" Option "MetaModes" "1024x768,800x600;800x600,800x600;640x480,640x480;512x384,512x384" EndSection
Contributeurs : traaf, adam0509 et bruno-Kaledonie (Xinerama), Fabien26 (actualisation et simplification des parties Xinerama et dual desktop), azerttyu (xrandr), changfu (Compiz), jeyk, cannard (script simplifiant l'utilisation de disper), Roschan (réorganisation de la page et mise à jour de certaines méthodes)