Bug 322653 - Setup for rotated displays is not saved correctly
Summary: Setup for rotated displays is not saved correctly
Status: RESOLVED FIXED
Alias: None
Product: systemsettings
Classification: Applications
Component: kcm_randr (show other bugs)
Version: unspecified
Platform: Other Linux
: NOR normal
Target Milestone: ---
Assignee: Unassigned bugs mailing-list
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2013-07-21 14:06 UTC by Bogdan
Modified: 2013-07-23 21:18 UTC (History)
2 users (show)

See Also:
Latest Commit:
Version Fixed In: 4.11.0
Sentry Crash Report:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Bogdan 2013-07-21 14:06:44 UTC
I have a multi-monitor setup and I recently noticed that I was affected by bug #183143. I looked into some of the work-arounds posted there, but while doing so I noticed that the xrandr line written into krandrrc for the rotated screen is wrong (i.e., xrandr does not accept it).

Reproducible: Always

Steps to Reproduce:
1. Get a multi-monitor setup;
2. Rotate one of the screens;
3. Save the configuration as default;
4. Examine the StartupCommands line in ~/.kde/share/config/krandrrc, and isolate the command for the rotated screen.
Actual Results:  
xrandr --output DVI-I-1 --pos 1920x0 --mode 1200x1920 --rotate left --refresh 59.9502

Expected Results:  
xrandr --output DVI-I-1 --pos 1920x0 --mode 1920x1200 --rotate left --refresh 59.9502

If you’re wondering what the difference is, it’s the mode. 

$ xrandr --output DVI-I-1 --pos 1920x0 --mode 1200x1920 --rotate left --refresh 59.9502
xrandr: cannot find mode 1200x1920

For some reason whoever generates the krandrrc rotates the mode according to the screen rotation. Apparently xrandr wants to set the mode in unrotated coordinates, which sort of makes sense. (Presumably the mode is needed to configure the data link to the screen, which doesn’t care if the image is rotated. I’m not sure where those refresh values come from, xrandr shows 60.0.)

This is the configuration I’m supposed to have:

$ xrandr 
Screen 0: minimum 8 x 8, current 3120 x 1920, maximum 8192 x 8192
DVI-I-0 disconnected (normal left inverted right x axis y axis)
VGA-0 disconnected (normal left inverted right x axis y axis)
DVI-I-1 connected 1200x1920+1920+0 left (normal left inverted right x axis y axis) 546mm x 352mm
   1920x1200      60.0*+   59.9  
   1680x1050      60.0  
   1600x1200      60.0  
   1600x1000      60.0  
   1280x1024      75.0     60.0  
   1280x960       60.0  
   1024x768       75.0     60.0  
   800x600        75.0     60.3  
   640x480        75.0     59.9  
HDMI-0 connected 1920x1200+0+430 (normal left inverted right x axis y axis) 546mm x 352mm
   1920x1200      60.0*+
   1920x1080      59.9     50.0     30.0     30.0     25.0  
   1680x1050      60.0  
   1600x1200      60.0  
   1600x1000      60.0  
   1280x1024      75.0  
   1280x960       60.0  
   1280x720       60.0     59.9     50.0  
   1024x768       75.0     60.0  
   800x600        75.0     60.3  
   720x576        50.0     25.0  
   720x480        59.9     30.0  
   640x480        75.0     59.9     59.9
Comment 1 Christoph Feck 2013-07-21 18:41:25 UTC
You could try the new screen management software "KScreen", if it works correctly there. Most distributions are going to pick up this for the KDE 4.11 release, because KRandR is unmaintained and buggy.

Regardless, this is an easy fix. Commit follows.
Comment 2 Christoph Feck 2013-07-21 18:59:50 UTC
Git commit f8b6ddb1cbdd5e64588a13b141640b0eab0d997d by Christoph Feck.
Committed on 21/07/2013 at 18:56.
Pushed by cfeck into branch 'KDE/4.11'.

Fix --mode for rotated screens

M  +5    -2    kcontrol/randr/randroutput.cpp

http://commits.kde.org/kde-workspace/f8b6ddb1cbdd5e64588a13b141640b0eab0d997d
Comment 3 Bogdan 2013-07-23 21:18:46 UTC
Wow, that was quick :-)

I couldn’t find a KScreen package for Debian right away, either that or my apt config is borked somehow. But that’s OK, I can use xrandr directly for now.