Xfce - Can't set primary monitor in xrandr

I'm using Xfce 4 Desktop Environment version 4.6.1 (Xfce 4.6)

I'm trying to get a dual monitor setup working. I have a vga monitor plugged in and sitting to the left of my laptop.

I want to have it so that my regular desktop sits in the laptop screen as normal and the vga acts as extra space to drag windows into. I'm almost there: i have the two spaces sitting next to each other and i can drag left and right.

The problem is that the vga monitor is the "primary" one with the taskbar in it: i want this in my laptop (ie in the right screen not the left).

Here's my current xrandr setup:

Screen 0: minimum 320 x 200, current 2720 x 900, maximum 4096 x 4096
VGA1 connected 1440x900+0+0 (normal left inverted right x axis y axis) 408mm x 255mm
   1440x900       59.9*+   75.0  
   1280x1024      75.0     60.0  
   1152x864       75.0  
   1024x768       75.1     70.1     60.0  
   832x624        74.6  
   800x600        72.2     75.0     60.3     56.2  
   640x480        72.8     75.0     66.7     60.0  
   720x400        70.1  
LVDS1 connected 1280x800+1440+0 (normal left inverted right x axis y axis) 331mm x 207mm
   1280x800       60.0*+
   1024x768       85.0     75.0     70.1     60.0  
   832x624        74.6  
   800x600        85.1     72.2     75.0     60.3     56.2  
   640x480        85.0     72.8     75.0     59.9  
   720x400        85.0  
   640x400        85.1  
   640x350        85.1  
TV1 disconnected (normal left inverted right x axis y axis)

VGA1 is the external vga monitor and LVDS1 is my native laptop screen. I've tried doing

xrandr --output LVDS1 --primary --right-of VGA1

which puts the screens in the correct layout, but doesn't make LVDS1 the primary, unless i'm misunderstanding what "primary" means in this context. Does primary mean "where the desktop lives"?

I've downloaded grandr and arandr and mucked about in those and haven't achieved anything there.

What's annoying is that i can get it so that LVDS1 is the primary, with the desktop etc, if i set VGA1 to be on the right of the laptop, instead of the left. So, it seems like the primary always just goes to whatever is the leftmost display.

Here's my /etc/X11/xorg.conf file in case it's relevant:

Section "Screen"
  Identifier    "Default Screen"
  Monitor       "Configured Monitor"
  Device        "Configured Video Device"
  SubSection "Display"
    Modes "1440x1440" "1440x900" "1280x1024" "1280x960" "1152x864" "1024x768" "832x624" "800x600" "720x400" "640x480"
    Virtual 2464 900
  EndSubSection
EndSection

Section "InputDevice"
  Identifier "Synaptics Touchpad"
  Driver "synaptics"
  Option "SendCoreEvents" "true"
  Option "Device" "/dev/psaux"
  Option "Protocol" "auto-dev"
  Option "HorizScrollDelta" "0"
  Option "SHMConfig" "on"
  Option "MaxTapTime" "0"
  Option "MaxTapMove" "0"
EndSection

Any advice anyone? thanks, max


Solution 1:

There is bug report filed about this; it's been known about for a little while. Xfce (as of 4.11.0) treats the left/upper-most display as 'primary' regardless. Irritating and not just limited to laptops.

With two monitors statically arranged, you can emulate changing the primary display by explicitly moving the Panel(s). But with a laptop that isn't practical so you'll have to either:

  1. physically locate the external display on the right;
  2. get used to non-intuitive desktop wrapping behavior;
  3. roll up your sleeves and fix Xfce.

I tried option B for a while: the monitor physically left-ward of my primary was designated as "below." I didn't have to rearrange my desk and traversing left/right screen edges resulted in normal workspace wrapping.

Solution 2:

As far as I can tell, in the current version of xrandr the primary flag doesn't work with laptops. The primary monitor is always the one on the left, starting at 0x0. Very annoying, maybe it's a bug.

My solution was just to move the desktop panels and icons. Right click Panel > Panel Prefences > Output: VGA1 (or whatever monitor).

Solution 3:

'm trying to get a dual monitor setup working. I have a vga monitor plugged in and sitting to the left of my laptop.

try:

$ xrandr --output VGA1 --auto --left-of LVDS1

For your reference, mine is laptop (LVDS-1) and and a right-of vertical panel (VGA-1) working well.

$ xrandr 
Screen 0: minimum 320 x 200, current 2340 x 1440, maximum 8192 x 8192
LVDS-1 connected 1440x900+0+0 (normal left inverted right x axis y axis) 303mm x 190mm
   1440x900       60.0*+   50.0  
   1152x864       60.0  
   1024x768       59.9  
   800x600        59.9  
   640x480        59.4  
   720x400        59.6  
   640x400        60.0  
   640x350        59.8  
VGA-1 connected 900x1440+1440+0 left (normal left inverted right x axis y axis) 408mm x 255mm
   1440x900       59.9*+   75.0  
   1280x1024      76.0     75.0     72.0     60.0  
   1152x864       75.0  
   1024x768       75.1     70.1     60.0  
   832x624        74.6  
   800x600        72.2     75.0     60.3  
   640x480        72.8     75.0     66.7     60.0  
   720x400        70.1  
   640x350        70.1  
DVI-D-1 disconnected (normal left inverted right x axis y axis)

Solution 4:

It's a bug.

xfce4-display-settings: why is there no “Extend to the left”?

I have tried to explain why: here.


Workaround:

Extend to the left external monitor (which thus becomes the primary) then move all controls - namely the panel(s) - to the right (secondary) internal monitor, making it act as if it were the primary.

  • To extend to the left use a command like xrandr --output LVDS1 --auto --right-of VGA1 --output VGA1 --auto (where LVDS1 is the internal display). It is very useful to add that to a panel or desktop launcher.

  • Un-check the 'Span monitors' option and unlock the panel.

[enter image description here][5]

  • Drag & drop the panel onto the right (internal) monitor. (If that doesn't seem to work, make the panel vertical then move it, then make it horizontal if that's what you want.)

The panel position seems to be remembered after coming back to this display configuration and after restart.