# X, mouse, and multihead: mouse only reaches part of second display

I'm running my laptop with an external monitor. The laptop's built in monitor and the external monitor have wildly different DPI, so I scale the external monitor to match the DPI of the internal one:

xrandr --output HDMI1 --scale 2.1x2.1 --pos 2880x0


This gives me

Screen 0: minimum 320 x 200, current 6912 x 2268, maximum 8192 x 8192

eDP1 connected primary 2880x1620+0+0 (normal left inverted right x axis y axis) 340mm x 190mm

HDMI1 connected 4032x2268+2880+0 (normal left inverted right x axis y axis) 477mm x 268mm


The transformation matrices are:

eDP1 (laptop built-in screen):

1.0 0.0 0.0
0.0 1.0 0.0
0.0 0.0 1.0


HDMI1 (external monitor):

2.099991 0.000000 0.000000
0.000000 2.099991 0.000000
0.000000 0.000000 1.000000


This lets both monitors show things at the same size.

The screens display fine, but now my mouse will only reach a small fraction of the external monitor (roughly the upper left quadrant) and won't move to the bottom portion of the screen or the right portion. When I move it to the extent of its range, xinput reports

ValuatorClass Mode=Relative Proximity=In
valuator[0]=4797
valuator[1]=1079
valuator[2]=0
valuator[3]=-348


The problem seems to me to be that the mouse thinks the screen has a size of 4798 x 1080 units, whereas the X screen 0 has a horizontal size of 6192 x 2268.

How can I configure the mouse to reach all of both monitors?

Can anyone suggest a solution?

Hardware: Lenovo Thinkpad W541. Software: Debian jessie

I had this same problem, only able to access upper left of second monitor with mouse, and fixed it with the --panning argument.

I have my laptop screen on the left (eDP-1, 3840x2160) and a monitor on the right (HDMI-2, 1600x900). I scaled the monitor on the right to match the left: 3840 / 1600 = 2.4, 2160 / 900 = 2.4 so scaling is 2.4x2.4. The first portion of the panning argument is the screen dimensions, the +3840 is for the horizontal offset of the second screen, and the +0 is for no vertical offset.

xrandr --output eDP-1 --auto --primary --output HDMI-2 --auto --scale 2.4x2.4 --right-of eDP-1 --panning 3840x2160+3840+0


For your situation, first double check your scaling values. After I have scaled my second monitor to match my laptop screen, xrandr outputs the same dimensions for both screens. Then, I would try something like

xrandr --output eDP1 --auto --primary --output HDMI1 --auto --scale 2.1x2.1 --right-of eDP1 --panning 2880x1620+2880+0


Also note, if I had just messed with the panning argument, sometimes this command would not reset the panning correctly. To fix this, I just unplugged and replugged the monitor then ran the command.