]> git.sur5r.net Git - i3/i3.github.io/blobdiff - _docs/multi-monitor
multi-monitor: update the document for the nvidia driver version 302.17
[i3/i3.github.io] / _docs / multi-monitor
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