You'd have to configure your displays as separate X screens, not a shared desktop. Ubuntu should then let you adjust the sub-pixel order for individual X screens.
Otherwise, what would happen with a window that spans two display devices with differing sub-pixel orders? Or even trickier, two displays in clone mode with different physical orders (RGB vs BGR).
This is a known limitation for all the operating systems right now and would need a major redesign to get it fixed. Dynamic adjustment isn't feasible because the library doing the rendering would have to know which screen you are on and adjust dynamically. Plus, suppose you have half of a window on one screen and half on another - it wouldn't know which to choose.
Setting up multiple X screens:
- Boot up and reconfigure X.
sudo dpkg-reconfigure -phigh xserver-xorg
Follow the steps to set up the primary display. (I don't know of a way to do this particular step from CLI)
- Open up a terminal and
lspci
This should give you a list of your devices and their bus ids. Find the graphics card and write down their bus id's.
- Make a copy of your
xorg.conf as xorg.conf.orig maybe and open it: sudo vi /etc/X11/xorg.conf
- Read this BEFORE proceeding to make sure you can customize it as much as you want.
Now make two Device sections and list the BusID of the card to be shared and also list the driver like this:
Section "Device"
Identifier "nvidia0"
# Your preferred driver
Driver "nvidia"
# Edit the BusID with the location of your graphics card
BusID "PCI:2:0:0"
Screen 0
EndSection
Section "Device"
Identifier "nvidia1"
# Your preferred driver
Driver "nvidia"
# Edit the BusID with the location of your graphics card
BusId "PCI:2:0:0"
Screen 1
EndSection
Now create two Screen sections (with the parameters of your choice of course, the only thing that needs to match is the Device in this section to the Identifier in previous one) as:
Section "Screen"
Identifier "Screen0"
Device "nvidia0"
Monitor "Monitor0"
DefaultDepth 24
Subsection "Display"
Depth 24
Modes "1600x1200" "1024x768" "800x600" "640x480"
EndSubsection
EndSection
Section "Screen"
Identifier "Screen1"
Device "nvidia1"
Monitor "Monitor1"
DefaultDepth 24
Subsection "Display"
Depth 24
Modes "1600x1200" "1024x768" "800x600" "640x480"
EndSubsection
EndSection
Now make a Monitor section for each monitor as:
Section "Monitor"
Identifier "monitor name here"
EndSection
Section "Monitor"
Identifier "monitor name here"
# Rotate as you want (your question says one is rotated)
Rotate "left"
EndSection
Finally, update the ServerLayout section to use and position both Screen sections:
Section "ServerLayout"
...
Screen 0 "Screen0"
Screen 1 "Screen1" leftOf "Screen0"
...
EndSection
Restart X and cross your fingers! If it does work then go on fine tuning it as much as you like.
NOW FOR THE SUBPIXEL RENDERING ORDER
Do this change in font.conf either in ~/font.conf or /etc/X11/font.conf`.
bgr
</p>