Hi,
With mod_xinerama, you can have a dual-head setup with 1 WScreen on each
monitor.
This is very nice, but has a couple of disadvantages:
- xinerama is marked deprecated and generally out-of-fashion
- changes in layout (adding/removing monitors, changing order) require notion
to be restarted. Not as bad as it sounds because the client windows stay
alive, but still.
I took a stab at porting mod_xinerama to XRandR.
The first very rough prototype is at https://github.com/raboof/mod_xrandr-3.
It already supports the current mod_xinerama functionality, but I'm running
into trouble when dynamically changing the screen order.
Suppose you have 2 monitors with different resolutions, one left of the other.
Notion starts up and shows 2 correctly-sized WScreens. Now you run
'xrandr --output one --right-of other', and the 2 monitors switch places.
Because the positions of the 2 WScreens relative to the abstract Screen have
not changed, the bigger WScreen is now shown on the smaller monitor and
vice-versa.
I tried to reposition the WScreens like this (existingscreen is the WScreen,
fp.g is the new desired geometry):
REGION_GEOM(existingscreen)=fp.g;
mplex_managed_geom((WMPlex*)existingscreen, &(fp.g));
mplex_do_fit_managed((WMPlex*)existingscreen, &fp);
This however does not appear to have any effect. Does anyone have any idea
how to approach this?
Kind regards,
Arnout
|