{"id":1008,"date":"2014-04-11T17:44:28","date_gmt":"2014-04-11T15:44:28","guid":{"rendered":"https:\/\/akim.sissaoui.com\/?p=1008"},"modified":"2015-09-02T15:48:04","modified_gmt":"2015-09-02T13:48:04","slug":"un-bureau-etendu-sur-trois-ecrans-avec-deux-cartes-graphiques","status":"publish","type":"post","link":"https:\/\/akim.sissaoui.com\/en\/informatique\/un-bureau-etendu-sur-trois-ecrans-avec-deux-cartes-graphiques\/","title":{"rendered":"Un bureau \u00e9tendu sur trois \u00e9crans avec deux cartes graphiques"},"content":{"rendered":"<p>Ok, \u00e7a n&#8217;a pas \u00e9t\u00e9 simple, je l&#8217;admets. Mais j&#8217;ai r\u00e9ussi.<\/p>\n<p>Voici donc comment je configure l&#8217;affichage de xorg pour utiliser un bureau \u00e9tendu avec trois \u00e9crans. Ca fonctionne plut\u00f4t bien.<\/p>\n<p>Ma configuration est la suivante:<\/p>\n<ul>\n<li>Deux cartes Radeon HD 5450<\/li>\n<li>Deux \u00e9cran Samsung 24&#8243; \u00e0 une r\u00e9solution maximum de 1920&#215;1080<\/li>\n<li>Un \u00e9cran HP 24&#8243; \u00e0 une r\u00e9solution maximum de 1920x1200L&#8217;\u00e9cran<\/li>\n<li>Pilotes open source xserver-xorg-video-ati<\/li>\n<\/ul>\n<p><!--more--><\/p>\n<p>&nbsp;<\/p>\n<p>J&#8217;utilise xUbuntu 13.10 avec donc xfce, \u00e7a ne devrait pas faire une grande diff\u00e9rence pour une autre distribution. C&#8217;est quand m\u00eame xorg qui est derri\u00e8re.<\/p>\n<p>Pour param\u00e9trer mon affichage, j&#8217;utilise xrandr que j&#8217;ex\u00e9cute avec un script automatique au d\u00e9marrage de la session. C&#8217;est la seule fa\u00e7on que j&#8217;ai trouv\u00e9 pour que mon affichage soit correct. Lorsque j&#8217;ai tent\u00e9 d&#8217;utiliser l&#8217;outil de configuration d&#8217;affichage dans les param\u00e8tres de xfce, j&#8217;avais des probl\u00e8mes de d\u00e9calage, ou des \u00e9crans qui se chevauchaient. arandr n&#8217;a pas r\u00e9solu ce probl\u00e8me. J&#8217;ai donc fini par utiliser arandr pour avoir un exemple de script, que j&#8217;ai ensuite adapt\u00e9 \u00e0 mon besoin.<\/p>\n<p>Pour d\u00e9finir la bonne configuration, nous avons besoin de diff\u00e9rentes informations. D&#8217;abord il faut identifier les affichages: pour ce faire, on utilise xrandr, et pour faire direct et simple, on affiche que les interfaces connect\u00e9es:<\/p>\n<pre lang=\"bash\">xrandr --query | grep \" connected\"<\/pre>\n<p>Ce qui retourne chez moi:<\/p>\n<pre lang=\"text\">HDMI-0 connected primary 1920x1080+1200+840 (normal left inverted right x axis y axis) 160mm x 90mm\r\nDVI-0 connected 1200x1920+0+0 left (normal left inverted right x axis y axis) 518mm x 324mm\r\nDVI-1-1 connected 1920x1080+3120+840 (normal left inverted right x axis y axis) 530mm x 300mm<\/pre>\n<p>J&#8217;ai donc un \u00e9cran en HDMI-0, un en DVI-0 et un en DVI-1-1. Je sais que mon HP est \u00e0 gauche en DVI-0. Mon premier Samsung est au centre en HDMI-0, et le second samsung \u00e0 droite en DVI-1-1 (oui, c&#8217;est quand m\u00eame moi qui les ai branch\u00e9s).<\/p>\n<p>A noter que mon \u00e9cran HP en 1920&#215;1200 est utilis\u00e9 en position portrait ce qui n\u00e9cessite une rotation sur la gauche.<\/p>\n<p>Il faut maintenant calculer la taille du bureau que l&#8217;on souhaite. Le bureau doit \u00eatre un rectangle. Sachant que j&#8217;utilise mon \u00e9cran HP \u00e0 gauche et en portrait, la hauteur de mon bureau doit \u00eatre de 1920, faute de quoi, cet \u00e9cran n&#8217;affichera pas un bureau sur toute la hauteur. La largeur du bureau elle correspond \u00e0 la largeur de mes trois \u00e9crans r\u00e9unis: 1200 + 1920 + 1920 = 5040. Je dois donc d\u00e9terminer la taille de mon bureau \u00e0 5040&#215;1920.<\/p>\n<p>Je dois \u00e9galement d\u00e9finir la position de mes diff\u00e9rents \u00e9crans. Je souhaite qu&#8217;ils soient align\u00e9s sur le bas. Le HP positionn\u00e9 \u00e0 gauche, au milieu le premier samsung et \u00e0 droite le second samsung. A noter que s&#8217;ils ne sont pas align\u00e9s sur le bas, je n&#8217;ai pas r\u00e9ussi \u00e0 avoir le bureau sur toute la hauteur sur l&#8217;\u00e9cran en mode portrait. Difficile de savoir pourquoi, et comme cette solution me convient, je n&#8217;ai pas beaucoup cherch\u00e9 la r\u00e9ponse.<\/p>\n<p>La position de mon HP est donc 0x0. Nous partons du coin sup\u00e9rieur gauche du bureau. Le prochain \u00e9cran, celui du milieu, sera donc positionn\u00e9 \u00e0 1200px du premier (puisqu&#8217;en mode portrait, c&#8217;est la largeur de celui-ci), et \u00e0 840px vers le bas (mon \u00e9cran HP a une hauteur de 1920, mon \u00e9cran samsung une hauteur de 1080. La diff\u00e9rence est donc de 840, ce qui aligne l&#8217;\u00e9cran samsung vers le bas). Ca nous donne donc 1200&#215;840. Mon second \u00e9cran smasung lui se trouve \u00e0 la droite des deux pr\u00e9c\u00e9dents. Donc 1200+1920=3120 pour la position horizontale, et on reprend 840 pour la position verticale. Nous avons donc 3120&#215;840.<\/p>\n<p>En r\u00e9sum\u00e9<\/p>\n<p>Taille du bureau: <\/p>\n<ul>\n<li>5040&#215;1920<\/li>\n<\/ul>\n<p>HP:<\/p>\n<ul>\n<li>Connection DVI-0<\/li>\n<li>R\u00e9solution: 1920&#215;1200<\/li>\n<li>Tourn\u00e9 sur la gauche<\/li>\n<li>Position 0x0<\/li>\n<\/ul>\n<p>&nbsp;<\/p>\n<p>Samsung 1:<\/p>\n<ul>\n<li>Connection HDMI-0<\/li>\n<li>R\u00e9solution: 1920&#215;1080<\/li>\n<li>D\u00e9fini comme \u00e9cran primaire<\/li>\n<li>Position 1200&#215;840<\/li>\n<\/ul>\n<p>&nbsp;<\/p>\n<p>Samsung 2:<\/p>\n<ul>\n<li>Connection DVI-1-1<\/li>\n<li>R\u00e9solution: 1920&#215;1080<\/li>\n<li>Position 3120&#215;840<\/li>\n<\/ul>\n<p>&nbsp;<\/p>\n<p>Il ne reste plus qu&#8217;\u00e0 ex\u00e9cuter la command xdrandr qui va nous arranger tout \u00e7a:<\/p>\n<pre lang=\"bash\">\r\nxrandr --size 5040x1920 --output HDMI-0 --mode 1920x1080 --pos 1200x840 --primary \\\r\n--output DVI-1-1 --mode 1920x1080 --pos 3120x840 \\\r\n--output DVI-0 --mode 1920x1200 --pos 0x0 --rotate left\r\n<\/pre>\n<p>Pour que cette configuration s&#8217;applique \u00e0 chaque d\u00e9marrage de session, j&#8217;ai cr\u00e9\u00e9 un script que j&#8217;ai ajout\u00e9 dans &#8220;autostart&#8221; sur xfce. Le contenu de ce script est le suivant:<\/p>\n<pre lang=\"bash\">\r\n#!\/bin\/bash\r\nsleep 5\r\nxrandr --size 5040x1920 --output HDMI-0 --mode 1920x1080 --pos 1200x840 --primary \\\r\n--output DVI-1-1 --mode 1920x1080 --pos 3120x840 \\\r\n--output DVI-0 --mode 1920x1200 --pos 0x0 --rotate left\r\n<\/pre>\n<p>J&#8217;ai ajout\u00e9 une pause de 5 seconde au lancement du script, car au moment de l&#8217;ex\u00e9cution, la session n&#8217;est pas pr\u00eate, et si xrandr est lanc\u00e9 trop top, il n&#8217;\u00e9tait pas pris en compte. Depuis l&#8217;ajout de cette pause, je n&#8217;ai aucune surprise, et mon affichage est configur\u00e9 correctement \u00e0 chaque lancement de session.<\/p>\n<p>Pour que ce script soit ex\u00e9cut\u00e9 \u00e0 chaque d\u00e9marrage de session sur xfce4, rendez-vous dans les param\u00e8tres de d\u00e9marrage de session. Je l&#8217;ai en anglais, je vous laisse trouver l&#8217;\u00e9quivalence en fran\u00e7ais. Il s&#8217;agit de &#8220;Session and Startup&#8221;. Dans l&#8217;onglet &#8220;Application Autostart&#8221;, vous pouvez ajouter votre script.<\/p>\n<p>J&#8217;ai test\u00e9 les pilotes propri\u00e9taire AMD ainsi que Xinerama. Mais \u00e7a ne r\u00e9pondait pas \u00e0 mon attente&#8230; Cette solution me convient. <\/p>\n<p>J&#8217;ai toutefois un petit probl\u00e8me (assez g\u00eanant il est vrai) sur le troisi\u00e8me \u00e9cran qui est connect\u00e9 \u00e0 la seconde carte Radeon. Lorsque je fais une s\u00e9rie d&#8217;entr\u00e9es au clavier ou \u00e0 la souris, la derni\u00e8re entr\u00e9e avant une pause n&#8217;est pas appliqu\u00e9e jsuqu&#8217;\u00e0 ce que je refasse une entr\u00e9e (celle-ci pouvant \u00eatre une touche clavier, ou un mouvement de la souris). C&#8217;est tr\u00e8s g\u00eanant car le derni\u00e8re caract\u00e8re d&#8217;une phrase par exemple n&#8217;apparait que quand je refais une action. Et ceci est vrai pour toutes les actions d&#8217;entr\u00e9e sur cet \u00e9cran. Je n&#8217;ai pas encore trouv\u00e9 la raison de ce souci.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Ok, \u00e7a n&#8217;a pas \u00e9t\u00e9 simple, je l&#8217;admets. Mais j&#8217;ai r\u00e9ussi. Voici donc comment je configure l&#8217;affichage de xorg pour utiliser un bureau \u00e9tendu avec trois \u00e9crans. Ca fonctionne plut\u00f4t bien. Ma configuration est la suivante: Deux cartes Radeon HD 5450 Deux \u00e9cran Samsung 24&#8243; \u00e0 une r\u00e9solution maximum de 1920&#215;1080 Un \u00e9cran HP 24&#8243; [&hellip;]<\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_jetpack_memberships_contains_paid_content":false,"footnotes":""},"categories":[220],"tags":[63],"jetpack_sharing_enabled":true,"jetpack_featured_media_url":"","_links":{"self":[{"href":"https:\/\/akim.sissaoui.com\/en\/wp-json\/wp\/v2\/posts\/1008"}],"collection":[{"href":"https:\/\/akim.sissaoui.com\/en\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/akim.sissaoui.com\/en\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/akim.sissaoui.com\/en\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/akim.sissaoui.com\/en\/wp-json\/wp\/v2\/comments?post=1008"}],"version-history":[{"count":3,"href":"https:\/\/akim.sissaoui.com\/en\/wp-json\/wp\/v2\/posts\/1008\/revisions"}],"predecessor-version":[{"id":1102,"href":"https:\/\/akim.sissaoui.com\/en\/wp-json\/wp\/v2\/posts\/1008\/revisions\/1102"}],"wp:attachment":[{"href":"https:\/\/akim.sissaoui.com\/en\/wp-json\/wp\/v2\/media?parent=1008"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/akim.sissaoui.com\/en\/wp-json\/wp\/v2\/categories?post=1008"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/akim.sissaoui.com\/en\/wp-json\/wp\/v2\/tags?post=1008"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}