4

I've looked around and cannot find this issue anywhere...

So I have a two-monitor setup on my Ubunutu 14.04 desktop. I had just solved a strange mouse issue by switching to Proprietary NVIDIA drivers for my video card through the software & updates tool, and rebooted my computer. I fixed the issue but a new one came up for me.

I have a two-monitor setup, both are 1920x1080 resolution. They both seem to do what they should, but when I attempt to move my mouse to the screen on the right, my left monitor scrolls right along with it. I don't know quite how to describe it but when I move my mouse all the way to the right, I end up having a mirrored display! Then, when I move the mouse back to the left, the left monitor scrolls back until it's back to two separate monitors.

Whenever I start any program, the window appears in the middle, straddling the two screens. It leads me to believe somehow the left screen's resolution got set too high, but when I look in System Settings under Display, the resolution on both of them is the same, 1920 x 1080. Not really sure why this is. The right screen behaves perfectly as it should.

UPDATE: After fiddling with xrandr settings, I've determined that I want to have two 1920x1080 screens acting like one 3840x1080 desktop, with no panning on either monitor. I am currently stymied by how to accomplish this (I'm very new to xrandr). The commands I've been trying are mostly variations on:

xrandr --output DVI-I-0 --size 1920x1080+1920 --panning 1920x1080 --output HDMI1 --size 1920x1080+1920 --panning 1920x1080

DVI-I-0 is my left (and primary) monitor; HDMI1 is my right one.

I have no idea if this will help, but here's the output of xrandr:

    Screen 0: minimum 8 x 8, current 3840 x 1080, maximum 16384 x 16384
DVI-I-0 connected primary 1920x1080+0+0 (normal left inverted right x axis y axis) 521mm x 293mm panning 3840x1080+0+0
   1920x1080      60.0*+   59.9     50.0     60.1     60.0     50.0  
   1680x1050      60.0  
   1600x1200      60.0  
   1440x900       59.9  
   1280x1024      75.0     60.0  
   1280x720       60.0     59.9     50.0  
   1024x768       75.0     60.0  
   800x600        75.0     60.3  
   720x576        50.0     50.1  
   720x480        59.9     60.1  
   640x480        75.0     59.9     59.9  
HDMI-0 disconnected (normal left inverted right x axis y axis)
DP-0 disconnected (normal left inverted right x axis y axis)
DVI-D-0 disconnected (normal left inverted right x axis y axis)
DP-1 disconnected (normal left inverted right x axis y axis)
VGA1 disconnected
HDMI1 connected 1920x1080+0+0 509mm x 286mm panning 1920x1080+0+0
   1920x1080      60.0*+
   1680x1050      59.9  
   1280x1024      75.0     60.0  
   1440x900       59.9  
   1280x960       60.0  
   1280x800       59.9  
   1152x864       75.0  
   1280x720       60.0  
   1024x768       75.1     70.1     60.0  
   832x624        74.6  
   800x600        72.2     75.0     60.3     56.2  
   640x480        75.0     66.7     60.0  
   720x400        70.1  
HDMI2 disconnected
HDMI3 disconnected
VIRTUAL1 disconnected
  1920x1080 (0x49)  148.5MHz
        h: width  1920 start 2008 end 2052 total 2200 skew    0 clock   67.5KHz
        v: height 1080 start 1084 end 1089 total 1125           clock   60.0Hz
  1280x1024 (0x2c2)  135.0MHz
        h: width  1280 start 1296 end 1440 total 1688 skew    0 clock   80.0KHz
        v: height 1024 start 1025 end 1028 total 1066           clock   75.0Hz
  1280x1024 (0x2c3)  108.0MHz
        h: width  1280 start 1328 end 1440 total 1688 skew    0 clock   64.0KHz
        v: height 1024 start 1025 end 1028 total 1066           clock   60.0Hz
  1024x768 (0x2c8)   65.0MHz
        h: width  1024 start 1048 end 1184 total 1344 skew    0 clock   48.4KHz
        v: height  768 start  771 end  777 total  806           clock   60.0Hz
  800x600 (0x2c9)   49.5MHz
        h: width   800 start  816 end  896 total 1056 skew    0 clock   46.9KHz
        v: height  600 start  601 end  604 total  625           clock   75.0Hz
  800x600 (0x2ca)   40.0MHz
        h: width   800 start  840 end  968 total 1056 skew    0 clock   37.9KHz
        v: height  600 start  601 end  605 total  628           clock   60.3Hz
  640x480 (0x2cf)   31.5MHz
        h: width   640 start  656 end  720 total  840 skew    0 clock   37.5KHz
        v: height  480 start  481 end  484 total  500           clock   75.0Hz
2

I've figured out what was wrong after trying a few things. I had to plug both monitors into the same kind of port, on the same graphics card. I had a hard time digging up the cables at home but once I got my hands on a pair of HDMI cables, I was able to set up the monitors correctly without much trouble.

It seems obvious now in retrospect but this didn't occur to me, especially since my Windows install on the same machine seemed to handle the original setup (two types of ports, two different devices) well enough. This makes perfect sense though.

  • I met the same bug. Using another hardware setup isn't possible for me to work around this software bug. I hope someone finds a better solution or that a wild bugfix appears. – Sebastian Barth Sep 17 '16 at 19:22
  • Here is guy having the same problem. He was able to workaround this bug via xrandr which didnt worked for me though: unix.stackexchange.com/questions/259647/… – Sebastian Barth Sep 17 '16 at 19:41
0

I met the same bug. Your trick is simply a trigger that makes the bug not to fall in. Since your workaround didn't work for me I digged in a bit and found a nice guy with a solution that might help others here as well.

The main problem is that the bug we met here causes the monitor which is scrolling into the other to have a virtual screen with the size of both screens summed. So the solution might seem to disable that extra virtual space on that screen to fit the monitors resolution. This is usually done with the --panning AxB argument - We use it to set the virtual space size.

This is how you could do it:

xrandr \
  --output LVDS-1-0 --mode 1920x1080 --panning 1920x1080 --pos 1920x0 \
  --output HDMI-0   --mode 1920x1080 --panning 1920x1080 --pos 0x0    --primary

(Slashed \ added to use newlines in the command.)

Sadly the problem here is that the driver (that is the bug) seems to overwrite the panning we set (or not set). But what it does not is to set another part of the panning: The tracking area! The Tracking area is actually that part of the screen the camera follows the cursor on that monitor.

So the idea is to set the panning as the driver but restrict the tracking area instead.

This is done with the following command:

xrandr \
  --output LVDS-1-0 --mode 1920x1080 \
  --output HDMI-0   --mode 1920x1080 --panning 3840x1080+0+0/1920x1080+1920+0/0/0/0/0    --primary

"The first four parameters [of the panning argument] specify the total panning area, the next four the pointer tracking area (which defaults to the same area). The last four parameters specify the border and default to 0." [man xrandr]

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.