I have developed the following hack as a workaround:
1. After configuring all the displays to work the way I want, I back up the ~/.config/monitors.xml to another location, naming the copy "monitors.xml.good"
2. When I put the laptop to the docking station and display gets messed up or falls back to mirroring, I do the following recovery procedure:
2.1 Unlock/Log in (in the messed-up display), find any error dialogs of "Cannot set screen.." and click on the ok button. This allows the display to later reconfigure when recover the configuration.
2.2 Lock the screen (Ctrl+Alt+L). This is important - I find that display reconfiguration works much better when the screen is locked.
2.3 Switch to a text console (Ctrl+Alt+F1)
2.4 Login (text)
2.5 Copy the monitors.xml.good backup over the existing ~/.config/monitors.xml
2.6 Turn off the secondary monitors (by pressing their power button)
2.7 Switch back to graphical login (Ctrl+Atl+F7)
2.8 Wait for the screen setting to settle down
2.9 Turn on the secondary monitors
2.10 Unlock screen (username/password)
That's it. At this point, the display is reset to the good configuration.
This hack is a bit cumbersome, since I move with my laptop to different rooms with different external screens and projectors, so in fact I maintain an accumulated monitors.xml containing all the working configurations for these screens. Still, better than frustration.
I have developed the following hack as a workaround: monitors. xml to another location, naming the copy "monitors.xml.good" monitors. xml
1. After configuring all the displays to work the way I want, I back up the ~/.config/
2. When I put the laptop to the docking station and display gets messed up or falls back to mirroring, I do the following recovery procedure:
2.1 Unlock/Log in (in the messed-up display), find any error dialogs of "Cannot set screen.." and click on the ok button. This allows the display to later reconfigure when recover the configuration.
2.2 Lock the screen (Ctrl+Alt+L). This is important - I find that display reconfiguration works much better when the screen is locked.
2.3 Switch to a text console (Ctrl+Alt+F1)
2.4 Login (text)
2.5 Copy the monitors.xml.good backup over the existing ~/.config/
2.6 Turn off the secondary monitors (by pressing their power button)
2.7 Switch back to graphical login (Ctrl+Atl+F7)
2.8 Wait for the screen setting to settle down
2.9 Turn on the secondary monitors
2.10 Unlock screen (username/password)
That's it. At this point, the display is reset to the good configuration.
This hack is a bit cumbersome, since I move with my laptop to different rooms with different external screens and projectors, so in fact I maintain an accumulated monitors.xml containing all the working configurations for these screens. Still, better than frustration.