]> git.sur5r.net Git - i3/i3.github.io/commitdiff
multi-monitor: update the document for the nvidia driver version 302.17
authorMichael Stapelberg <michael@stapelberg.de>
Sat, 7 Jul 2012 19:45:26 +0000 (21:45 +0200)
committerMichael Stapelberg <michael@stapelberg.de>
Sat, 7 Jul 2012 19:45:55 +0000 (21:45 +0200)
_docs/multi-monitor
docs/multi-monitor.html

index a1fd6dc039273b454c2ddc9ddcd322c4726d754c..d3f31ba24b27fd1539a7840d6980041102aea23a 100644 (file)
@@ -1,14 +1,17 @@
 The multi-monitor situation
 ===========================
-Michael Stapelberg <michael+i3@stapelberg.de>
-September 2011
+Michael Stapelberg <michael@i3wm.org>
+July 2012
 
 …or: oh no, I have an nVidia graphics card!
 
 == The quick fix
 
 If you are using the nVidia binary graphics driver (also known as 'blob')
-you need to use the +--force-xinerama+ flag (in your .xsession) when starting
+you need to upgrade to at least version 302.17 (released in June 2012).
+
+In case you cannot update the driver to 302.17 or newer on your machine for
+some reason, use the +--force-xinerama+ flag (in your .xsession) when starting
 i3, like so:
 
 .Example:
@@ -20,15 +23,15 @@ exec i3 --force-xinerama -V >>~/.i3/i3log 2>&1
 
 == The explanation
 
-Starting with version 3.ε, i3 uses the RandR (Rotate and Resize) API instead
-of Xinerama. The reason for this, is that RandR provides more information
-about your outputs and connected screens than Xinerama does. To be specific,
-the code which handled on-the-fly screen reconfiguration (meaning without
-restarting the X server) was a very messy heuristic and most of the time did
-not work correctly -- that is just not possible with the little information
-Xinerama offers (just a list of screen resolutions, no identifiers for the
-screens or any additional information). Xinerama simply was not designed
-for dynamic configuration.
+Starting with version 3.ε (March 2010), i3 uses the RandR (Rotate and Resize)
+API instead of Xinerama. The reason for this, is that RandR provides more
+information about your outputs and connected screens than Xinerama does. To be
+specific, the code which handled on-the-fly screen reconfiguration (meaning
+without restarting the X server) was a very messy heuristic and most of the
+time did not work correctly -- that is just not possible with the little
+information Xinerama offers (just a list of screen resolutions, no identifiers
+for the screens or any additional information). Xinerama simply was not
+designed for dynamic configuration.
 
 So RandR came along, as a more powerful alternative (RandR 1.2 to be specific).
 It offers all of Xinerama’s possibilities and lots more. Using the RandR API
@@ -38,17 +41,16 @@ workspaces to output names instead of some rather unreliable screen identifier
 
 As RandR has been around for about three years as of this writing, it seemed
 like a very good idea to us, and it still is a very good one. What we did not
-expect, however, was the nVidia binary driver. It still does not support RandR
-(as of March 2010), even though nVidia has announced that it will support RandR
-eventually. What does this mean for you, if you are stuck with the binary
-driver for some reason (say the free drivers don’t work with your card)? First
-of all, you are stuck with TwinView and cannot use +xrandr+. While this ruins
-the user experience, the more grave problem is that the nVidia driver not only
-does not support dynamic configuration using RandR, it also does not expose
-correct multi-monitor information via the RandR API. So, in some setups, i3
-will not find any screens; in others, it will find one large screen which
-actually contains both of your physical screens (but it will not know that
-these are two screens).
+expect, however, was the nVidia binary driver. It did not support RandR until
+mid 2012, even though nVidia had announced that it will support RandR
+previously. What does missing RandR support mean for you? First of all, you are
+stuck with TwinView and cannot use +xrandr+. While this ruins the user
+experience, the more grave problem is that the nVidia driver not only does not
+support dynamic configuration using RandR, it also does not expose correct
+multi-monitor information via the RandR API. So, in some setups, i3 will not
+find any screens; in others, it will find one large screen which actually
+contains both of your physical screens (but it will not know that these are two
+screens).
 
 For this very reason, we decided to implement the following workaround: As
 long as the nVidia driver does not support RandR, an option called
index 81ba8ab8bfd9cd9ae2811f8ae885f4e01d2780b9..1de4193fa3e29691c0ede666f24055f1e795c994 100644 (file)
@@ -4,7 +4,7 @@
 <head>\r
 <link rel="icon" type="image/png" href="/favicon.png">\r
 <meta http-equiv="Content-Type" content="application/xhtml+xml; charset=UTF-8" />\r
-<meta name="generator" content="AsciiDoc 8.6.4" />\r
+<meta name="generator" content="AsciiDoc 8.6.6" />\r
 <title>i3: The multi-monitor situation</title>\r
 <link rel="stylesheet" href="/css/style.css" type="text/css" />\r
 <link rel="stylesheet" href="/css/xhtml11.css" type="text/css" />\r
@@ -30,8 +30,8 @@ window.onload = function(){asciidoc.footnotes(); asciidoc.toc(2);}
 <div id="header">\r
 <h1>The multi-monitor situation</h1>\r
 <span id="author">Michael Stapelberg</span><br />\r
-<span id="email"><tt>&lt;<a href="mailto:michael+i3@stapelberg.de">michael+i3@stapelberg.de</a>&gt;</tt></span><br />\r
-<span id="revdate">September 2011</span>\r
+<span id="email"><tt>&lt;<a href="mailto:michael@i3wm.org">michael@i3wm.org</a>&gt;</tt></span><br />\r
+<span id="revdate">July 2012</span>\r
 <div id="toc">
   <div id="toctitle">Table of Contents</div>
   <noscript><p><b>JavaScript must be enabled in your browser to display the table of contents.</b></p></noscript>
@@ -46,7 +46,9 @@ window.onload = function(){asciidoc.footnotes(); asciidoc.toc(2);}
 <h2 id="_the_quick_fix">1. The quick fix</h2>\r
 <div class="sectionbody">\r
 <div class="paragraph"><p>If you are using the nVidia binary graphics driver (also known as <em>blob</em>)\r
-you need to use the <tt>--force-xinerama</tt> flag (in your .xsession) when starting\r
+you need to upgrade to at least version 302.17 (released in June 2012).</p></div>\r
+<div class="paragraph"><p>In case you cannot update the driver to 302.17 or newer on your machine for\r
+some reason, use the <tt>--force-xinerama</tt> flag (in your .xsession) when starting\r
 i3, like so:</p></div>\r
 <div class="listingblock">\r
 <div class="title">Example:</div>\r
@@ -59,15 +61,15 @@ i3, like so:</p></div>
 <div class="sect1">\r
 <h2 id="_the_explanation">2. The explanation</h2>\r
 <div class="sectionbody">\r
-<div class="paragraph"><p>Starting with version 3.ε, i3 uses the RandR (Rotate and Resize) API instead\r
-of Xinerama. The reason for this, is that RandR provides more information\r
-about your outputs and connected screens than Xinerama does. To be specific,\r
-the code which handled on-the-fly screen reconfiguration (meaning without\r
-restarting the X server) was a very messy heuristic and most of the time did\r
-not work correctly&#8201;&#8212;&#8201;that is just not possible with the little information\r
-Xinerama offers (just a list of screen resolutions, no identifiers for the\r
-screens or any additional information). Xinerama simply was not designed\r
-for dynamic configuration.</p></div>\r
+<div class="paragraph"><p>Starting with version 3.ε (March 2010), i3 uses the RandR (Rotate and Resize)\r
+API instead of Xinerama. The reason for this, is that RandR provides more\r
+information about your outputs and connected screens than Xinerama does. To be\r
+specific, the code which handled on-the-fly screen reconfiguration (meaning\r
+without restarting the X server) was a very messy heuristic and most of the\r
+time did not work correctly&#8201;&#8212;&#8201;that is just not possible with the little\r
+information Xinerama offers (just a list of screen resolutions, no identifiers\r
+for the screens or any additional information). Xinerama simply was not\r
+designed for dynamic configuration.</p></div>\r
 <div class="paragraph"><p>So RandR came along, as a more powerful alternative (RandR 1.2 to be specific).\r
 It offers all of Xinerama’s possibilities and lots more. Using the RandR API\r
 made our code much more robust and clean. Also, you can now reliably assign\r
@@ -75,17 +77,16 @@ workspaces to output names instead of some rather unreliable screen identifier
 (position inside the list of screens, which could change, and so on…).</p></div>\r
 <div class="paragraph"><p>As RandR has been around for about three years as of this writing, it seemed\r
 like a very good idea to us, and it still is a very good one. What we did not\r
-expect, however, was the nVidia binary driver. It still does not support RandR\r
-(as of March 2010), even though nVidia has announced that it will support RandR\r
-eventually. What does this mean for you, if you are stuck with the binary\r
-driver for some reason (say the free drivers don’t work with your card)? First\r
-of all, you are stuck with TwinView and cannot use <tt>xrandr</tt>. While this ruins\r
-the user experience, the more grave problem is that the nVidia driver not only\r
-does not support dynamic configuration using RandR, it also does not expose\r
-correct multi-monitor information via the RandR API. So, in some setups, i3\r
-will not find any screens; in others, it will find one large screen which\r
-actually contains both of your physical screens (but it will not know that\r
-these are two screens).</p></div>\r
+expect, however, was the nVidia binary driver. It did not support RandR until\r
+mid 2012, even though nVidia had announced that it will support RandR\r
+previously. What does missing RandR support mean for you? First of all, you are\r
+stuck with TwinView and cannot use <tt>xrandr</tt>. While this ruins the user\r
+experience, the more grave problem is that the nVidia driver not only does not\r
+support dynamic configuration using RandR, it also does not expose correct\r
+multi-monitor information via the RandR API. So, in some setups, i3 will not\r
+find any screens; in others, it will find one large screen which actually\r
+contains both of your physical screens (but it will not know that these are two\r
+screens).</p></div>\r
 <div class="paragraph"><p>For this very reason, we decided to implement the following workaround: As\r
 long as the nVidia driver does not support RandR, an option called\r
 <tt>--force-xinerama</tt> is available in i3 (alternatively, you can use the\r