Desktops per Xinerama screen

A friend at work was showing off the new Enlightenment the other day, he had Xinerama enabled, but was able to switch desktops on a per monitor basis, rather than both monitors flipping to the new desktop.

Is such a thing possible with Fvwm?

I did this once, a year or two ago when I had a dual-monitor setup at work. I had fvwm on one monitor, and CDE from a remote system on the second monitor.

I had xinerama support compiled into X, but I did NOT startx – +xinerama when I did it. Instead, I started X, opened and xterm, set the display to :0.0 and :0.1, respectively for each separate session that I was to open. Then I started fvwm on one and remotely started CDE on the other.

So it’s not specifically something fvwm does, it’s something that X does.

Also, I couldn’t drag windows from one monitor to the other.

Oh, and I think I had to pass a flag to fvwm to tell it not to try starting up on all open displays… but I don’t recall what it was.

No that’s not what he means, you are starting two different X Sessions. What he wants to do is to be able to be, let’s say be on page one on his first screen and on page 7 on the second one. Or maybe even on desk 2 page 7 on the first screen while on page 1 desk one on the other screen.

This indeed would be a pretty cool feature to have and I think someone already did this, at least I saw a module doing this in #fvwm, but I needed to compile it inside an entire Fvwm source tree, which I didn’t have lying around back then. I am willing to upload the code though so interested people can check it out and see if it does what they want :slight_smile:

This is exactly this type of thing that I am looking for at the moment as well…

if you could get ahold of the source tBD and tell us how such a thing is used, that would be amazing.

I thought this to be dead but I have had some requests for this code recently and I did manage to find it again too, so here it is.

There are no guarantees that it’ll work and what you see is what you get, I don’t have any other information about this module (alas).

It’s a bit rough around the edges. I don’t know why it’s a module either. I’ve cleaned it up a bit, and am adding some more support to it so that it includes pages, instead of just switching desks.

It does work as is – if you edit the toplevel and edit the file in fvwm/modules, adding in FvwmDX, and then editing FvwmDX.c so that it #includes “config.h” at the top, as every file should.

Watch this space.

– Thomas Adam

Would you be willing to give out your upated source? I’m have a few issues getting it working with 2.5.21 - just autojunk stuff tho.


Ok, got it working with a cvs checkout of HEAD.

This is a killer feature for me, almost drove me to E17. It works well once you figure out how to call it.

It confuses the pager a little, but who really needs a pager :slight_smile:

Ok, per screen pagers are probably not possible with this module as it appears to just reshuffle windows around to get this appearance…


will this come into the main-tree in the near future?

No – I hope not. FVWM does not exist to circumvent idiotic bugs and short-sightedness in other people’s code, despite what many people would have you believe. The problem exists in Xinerama.

– Thomas Adam

Hi Thomas !

Since Xorg 7.3, Xinerama is mandatory. Therefore, your module is the only way to keep the old behaviour (the one without Xinerama). Would this change your mind about pushing this module into mainline ?

I can’t push this module into mainline since I am not a developer. I’m also slowly (like everything I do with working on FVWM) on this module, re-writing most of it as I go. It sucks though, since it a horrid complex heap of code. The better approach would be to slap the Xinerama developers into producing something sane which worked with the window manager.

That is, after all, where the responsibility lies.

– Thomas Adam

Would not such a feature be more easily implemented as a patch to fvwm ? To implement it, you would just have to modify the way fvwm switch to another desktop. I suppose that there is some code that modify some structure telling which window are currently on screen. This code could be modified to change the structure for the windows of the current screen only.

I say this without knowing how fvwm work. Do you think this is a valid approach ?


– Thomas Adam


Could you explain a bit more what should we put in *FvwmDXScreens ?