Difference between revisions of "DualScreen"

From ArchWiki
Jump to: navigation, search
m (Extended Screen using XRandR and an xorg.conf file)
(merged into Multihead)
 
(13 intermediate revisions by 3 users not shown)
Line 1: Line 1:
[[Category:X Server (English)]]
+
#REDIRECT [[Multihead]]
{{i18n|DualScreen}}
+
{{Merge|Multihead|DualScreen is only a specific case of Multihead.|Talk:Multihead#Merge with DualScreen}}
+
 
+
== Background ==
+
 
+
Xwindows drives the underlying graphical interface of most if not all Unix/Linux computers providing a GUI. [[Wikipedia:Xwindows | It was developed in 1984 at MIT.]] After around 35 years of development, tweaking and adding of new hardware and ideas, it is generally acknowledged to be a bit of a beast. It should be remembered that the common configuration at time of development was a single mini running X providing individual views to Xterminals in a timesharing system. Nowadays the norm is X providing a single screen on a desktop or laptop.
+
 
+
All of this means that there are many ways of achieving the same thing and many slightly different things that can meet the same purpose. In modern X versions sometimes you can get away with limited or no configuration. In the last few years the boast is that X is self configuring. Certainly the best practice rule of thumb is less configuration is better - that is only configure what is wrong.
+
 
+
== Extended Screen ==
+
 
+
This approach works well when the monitors are the same size and resolution. Interesting things happen - like windows off screen etc - when they are not. It is supposed to work but does not. It should also be noted that in a full desktop environment such as Gnome there are built-in GUI utilities to achieve this. However *box environments suffer.
+
 
+
1) Identify where your windows manager or desktop environment places startup code. For fluxbox this is ~/.fluxbox/startup
+
 
+
2) Add the xrandr utility and if you like GUI the arandr utility
+
 
+
pacman -S xorg-xrandr arandr
+
 
+
3) From the commandline run xrandr and you will see something like:
+
 
+
xrandr -q
+
 
+
produces
+
 
+
Screen 0: minimum 320 x 200, current 3280 x 1080, maximum 8192 x 8192
+
VGA1 connected 1360x768+0+0 (normal left inverted right x axis y axis) 406mm x 229mm
+
  1360x768      60.0*+
+
  1024x768      75.1    75.0    60.0 
+
  832x624        74.6 
+
  800x600        75.0    60.3 
+
  640x480        75.0    60.0 
+
  720x400        70.1 
+
HDMI1 connected 1920x1080+1360+0 (normal left inverted right x axis y axis) 477mm x 268mm
+
  1920x1080      60.0*+
+
  1600x1200      60.0 
+
  1680x1050      60.0 
+
  1280x1024      75.0    60.0 
+
  1440x900      59.9 
+
  1280x960      60.0 
+
  1152x864      75.0 
+
  1024x768      75.1    70.1    60.0 
+
  832x624        74.6 
+
  800x600        75.0    60.3    56.2 
+
  640x480        72.8    75.0    60.0 
+
  720x400        70.1 
+
DP1 disconnected (normal left inverted right x axis y axis)
+
HDMI2 disconnected (normal left inverted right x axis y axis)
+
HDMI3 disconnected (normal left inverted right x axis y axis)
+
DP2 disconnected (normal left inverted right x axis y axis)
+
DP3 disconnected (normal left inverted right x axis y axis)
+
 
+
4) Note down the portnames of the monitors attached - in the case of the above "VGA1" and "HDMI1"
+
 
+
5) Decide which resolution you are going to use. Each monitor has a preferred mode that, according to the manufacturer, is the best visually. These are marked by a "+". The mode a monitor is running at is marked by a "*". You should if possible use the preferred mode and a mode shared by both monitors. You can also add modes: see the [[Xrandr]] page.
+
 
+
6) Decide which monitor is on the left or right (or top and bottom) and configure as follows:
+
 
+
=== VGA1 left of HDMI1 at their preferred resolutions ===
+
 
+
xrandr --output VGA1 --mode 1360x768 --pos 0x0 --output HDMI1 --mode 1920x1080 --pos 1360x0
+
 
+
* --output specifies which port to use
+
* --mode specifies which mode to use
+
* --pos specifies the x/y coordinates of this monitor on the big virtual screen
+
 
+
or
+
 
+
xrandr --output VGA1 --mode 1360x768 --output HDMI1 --mode 1920x1080 --right-of VGA1
+
 
+
* --right-of places the previous screen (HDMI1) to the right of the specified screen (VGA1)
+
 
+
=== VGA1 right of HDMI1 at 1024x768 ===
+
 
+
xrandr --output VGA1 --mode 1024x768 --pos 1920x0 --output HDMI1 --mode 1024x768 --pos 0x0
+
 
+
or
+
 
+
xrandr --output VGA1 --mode 1024x768 --output HDMI1 --mode 1024x768 --left-of VGA1
+
 
+
* --left-of places the previous screen (HDMI1) to the left of the specified screen (VGA1)
+
 
+
=== VGA1 above HDMI1 at preferred resolution ===
+
 
+
xrandr --output VGA1 --mode 1360x768 --pos 0x0 --output HDMI1 --mode 1920x1080 --pos 0x768
+
 
+
or
+
 
+
xrandr --output VGA1 --mode 1360x768 --output HDMI1 --mode 1920x1080 --below VGA1
+
 
+
* --below places the previous screen (HDMI1) below the specified screen (VGA1)
+
 
+
=== VGA1 below HDMI1 at 1024x768 ===
+
 
+
xrandr --output VGA1 --mode 1024x768 --pos 0x768 --output HDMI1 --mode 1024x768 --pos 0x0
+
 
+
or
+
 
+
xrandr --output VGA1 --mode 1024x768 --output HDMI1 --mode 1024x768 --above VGA1
+
 
+
* --above places the previous screen (HDMI1) to the above the specified screen (VGA1)
+
 
+
7) Play around at the command line until you have a setting that works for you. When you do simply copy that call to xrandr into your window manager/desktop startup file. Arandr is a GUI interface to xrandr and may have some benefits in your search for a solution.
+
 
+
I found that some settings and approaches worked better than others and that even the best did not work in all cases because of the differences between my two monitors.
+
 
+
== Extended Screen using XRandR and an xorg.conf file ==
+
 
+
Another way to set up DualScreen is by using an ''xorg.conf'' file.  This configuration should work with most open-source driver setups - anything that has support for ''XRandR''.  The example code is given for an "''intel''" driver but you should be able to replace that driver name with "''nouveau''" - for nVidia - or "''radeon''" - for AMD/ATI - dependent on which hardware you are using.
+
 
+
Setting up a DualScreen configuration you only need three sections in the '''/etc/X11/xorg.conf''' file as follows:
+
 
+
{{hc|/etc/X11/xorg.conf|
+
Section "Device"
+
    Identifier  "Card0"
+
    Driver      "intel" # change to nouveau or radeon to suit your hardware
+
EndSection
+
#
+
Section "Monitor"
+
    Identifier  "Monitor-VGA1"
+
    Option      "Primary" "true"
+
EndSection
+
#
+
Section "Monitor"
+
    Identifier  "Monitor-HDMI1"
+
    Option      "RightOf" "Monitor-VGA1"
+
EndSection}}
+
 
+
Where ''VGA1'' and ''HDMI1'' are monitor ports.
+
 
+
Notes:
+
 
+
* You specify the individual ports using the ''Identifier "Monitor-'''port'''"'' lines in the ''Monitor'' sections. These are the same ports that are listed by "''xrandr -q''".
+
 
+
* This setup does not specify which resolutions to use or absolute positions relative to each other of both monitor's images. To specify those you could add a preferred mode which is given as an x size, a lower-case "x", and a y size, and you could also specify a position which is given as and x coordinate, a space, and then a y coordinate, to the ''Monitor'' sections:
+
 
+
    Option "PreferredMode" "1920x1080"
+
    Option "Position" "0 0"
+
 
+
* Setting up DualScreen this way uses ''XRandR''.  On the [[Multihead]] page there is another method to configure X-Server file(s) called ''Xinerama''.  ''Xinerama'' is used when complex display setups are required.
+
 
+
== See also ==
+
 
+
* DualScreen is discussed in the [[Xorg]] article.
+
* http://intellinuxgraphics.org/dualhead.html - Source for XRandR information
+
* http://www.thinkwiki.org/wiki/Xorg_RandR_1.2 - Source for XRandR information
+
* {{ic|man intel}} - Source for Intel information
+

Latest revision as of 18:15, 11 August 2013

Redirect to: