I have an integrated ION GPU, which is supported by the proprietary drivers and I've never been able to get the open source drivers to work. I would like my left screen to be normal, but the right hand screen to be rotated. How do I achieve this?
How to setup dual-head monitors with an Nvidia drivers and one monitor rotated
multi-monitornvidia
Related Solutions
This isn't a direct answer to your question, but you might want to take a step back and consider why you want this feature. It may be because you are used to working in a particular manner under Windows, but you might find that Linux offers a different way to approach your tasks, which could be much more efficient and may not even require a taskbar!
For example I use the Awesome window manager, which allows me to perform all window management via the keyboard. Moving windows around, switching between programs, even moving windows between monitors can all be done via keyboard shortcuts. Using 'tags', windows can be linked to shortcut keys as well. So one keypress switches to my two Firefox windows (split screen on one monitor) and another keypress switches to Thunderbird on another monitor. Because of this, having a taskbar is not really necessary. Although having said that, by default you do get a taskbar on each screen!
Anyway, my point is that before you spend too much effort making your new environment work the same way your old one did, consider why you are moving away from your old environment in the first place!
I met the same bug. Your workaround didn't work for me. Your trick is simply a trigger that makes the bug not to fall in. 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.
tl;dr: 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]
Best Answer
It took me a while to work this out, so I wanted to share it with others.I will assume that the nvidia drivers and
nvidia-settings
are installed. (On Arch, runsudo pacman -S nvidia nvidia-utils
.)First, we need to generate a
xorg.conf
usingnvidia-settings
. From a GUI terminal, runsudo nvidia-settings
./etc/xorg.conf
will work, or you could add it as a new file to/etc/xorg.conf.d
- e.g./etc/xorg.conf.d/10-monitors.conf
.Now, we need to edit this file. Open it in your favourite editor as
root
. For example, rungksu gedit /etc/xorg.conf
orsudo vim /etc/xorg.conf
.Find the correct
Section "Screen"
. I did this by finding the correctSection "Monitor"
and then finding the correspondingSection "Screen"
.Find the line that looks like
and add
{ Rotation=Left }
, so it looks likeExample
My
xorg.conf
reads as followsReferences