Hi all,
I use ctwm for more than 20 years and I am pretty happy with it.
I use 2 monitors in "xinerama mode" (first using Xinerama extension,
then now using Xrandr extension) without any problem as they are the
same, with, of course, the same resolution.
As I want to add a third monitor, with a different resolution this time,
I am a bit annoyed... Note that it would be the same if I would connect
an external monitor to my laptop.
Indeed, I use DontMoveOff configuration, and adding a new monitor with a
different resolution breaks this feature (as well as f.pack & f.full*
functions), as ctwm considers a single maximal rectangular screen area
gathering all monitors together so including "black" areas when monitors
resolutions do not match. These "black" areas are not taken into account
when moving windows or f.packing/f.fulling them (read as, you can move
windows in these non visible areas even DontMoveOff is enabled.)
I tried to use VirtualScreens to declare my different size areas (2 in
fact: the first one for the 2 monitors of the same size, the second for
the third monitor), but I did not succeed to use it correctly (even with
last 4.0.0-beta.20170507.) Menus always open in first area when I click
on second (on root window or on frame button), moving window from one
area to the second one works (using f.forcemove as DontMoveOff works as
expected), BUT both workspace managers (one in each area) display the
window, instead of only displaying the window in area owning it.
So I have 2 questions:
- do someone successfully use the VirtualScreens feature?
- do someone plan to integrate Xrandr extension?
I understood how to request all monitors using Xrandr extension
programmatically (I am not X Window programmer but quite experienced C
one.) But when I watched ctwm sources and found in screen.h the
different areas ctwm is able to handle (RealRoot, CaptiveRoot,
XineramaRoot), I was a bit confused...
If xrandr integration is not planned, I would like to have a look at it
to make DontMoveOff, f.pack and f.full* working. In this case, perhaps
someone can give me some pointers and/or pitfalls to avoid?
Best regards,
Max.