I tested on GM965(Lenovo T61, LVDS's preffered mode 1280x800) and connected one monitor(preffered mode 1024x768) via VGA port. (same test env. with bug #13088) Test steps: root@x-gm965:~/media# xinit & root@x-gm965:~/media# xrandr --output VGA --pos 400x800 root@x-gm965:~/media# xrandr --output LVDS --pos 200x700 After above steps, the LVDS do not be moved, the VGA will be moved to 200x100. This is incorrect. Below is the xrandr output: root@x-gm965:~/media# xrandr -q Screen 0: minimum 320 x 200, current 1224 x 868, maximum 2048 x 2048 VGA connected 1024x768+200+100 (normal left inverted right x axis y axis) 304mm x 228mm 1024x768 60.0*+ 75.1 60.0* 800x600 75.0 60.3 640x480 75.0 60.0 720x400 70.1 LVDS connected 1024x768+0+0 (normal left inverted right x axis y axis) 331mm x 207mm 1280x800 60.3 + 50.0 1024x768 60.0* 800x600 60.3 640x480 59.9 TMDS-1 disconnected (normal left inverted right x axis y axis) The xorg.log and xorg.conf can refer to bug #10388. Do not upload again.
The git tip is used. commits: Xf86_video_intel: b434c1a437c407de88396b219560649c2dae82b2 Xserver: aec0d06469a2fa7440fdd5ee03dc256a68704e77
This is a bug of app/xrandr. In app/xrandr, it will set one monitor's position to 0x0. But this is not necessery. Below patch can fix this bug. diff --git a/xrandr.c b/xrandr.c index 2fb1212..abdff32 100644 --- a/xrandr.c +++ b/xrandr.c @@ -1378,31 +1378,6 @@ set_positions (void) if (!any_set) fatal ("loop in relative position specifications\n"); } - - /* - * Now normalize positions so the upper left corner of all outputs is at 0,0 - */ - min_x = 32768; - min_y = 32768; - for (output = outputs; output; output = output->next) - { - if (output->mode_info == NULL) continue; - - if (output->x < min_x) min_x = output->x; - if (output->y < min_y) min_y = output->y; - } - if (min_x || min_y) - { - /* move all outputs */ - for (output = outputs; output; output = output->next) - { - if (output->mode_info == NULL) continue; - - output->x -= min_x; - output->y -= min_y; - output->changes |= changes_position; - } - } } static void
Keeping the monitors normalized so that the bounding box of their coverage aligns with the origin is the policy of the xrandr tool, and is very useful when people want to specify '-left-of' or '-above'. Changing this policy will break many existing tools. I don't think it's a sensible behaviour.
The rule is reasonable. But when execute below commands: root@x-gm965:~/media# xrandr --output VGA --pos 400x800 root@x-gm965:~/media# xrandr --output LVDS --pos 200x700 Xrandr should not change the VGA's pos when execute the second command. We can tell the user that one monitor need to be locate 0x0, so the second command does not work. Reopen this bug ans change the priority to low.
(In reply to comment #4) > The rule is reasonable. But when execute below commands: > > root@x-gm965:~/media# xrandr --output VGA --pos 400x800 > root@x-gm965:~/media# xrandr --output LVDS --pos 200x700 > > Xrandr should not change the VGA's pos when execute the second command. We can > tell the user that one monitor need to be locate 0x0, so the second command > does not work. > Since xrandr normalizes all outputs' position to the minmium one, shall we just document this behavior as xrandr's policy? Thanks, Hong
So this is xrandr tool behavior, mark as not-a-bug.
My option is in comment #4. Of coz, the bug is trivial and we can think this a known issue.
Use of freedesktop.org services, including Bugzilla, is subject to our Code of Conduct. How we collect and use information is described in our Privacy Policy.