Discussion:
FVWM: Moving windows between independently pageable screens
Tom Alsberg
2011-07-19 15:20:48 UTC
Permalink
Hello, folks.

I come with a question about multiple screen use, somewhat FVWM related
but also broader. I figured the population of FVWM users and hackers
might be good target for it; maybe some people have more ideas than I
could come up with in a couple of serches through the web and docs...

My work tends to include a lot of on-screen state, so I've always been
pursuing more screen space in various ways. At times that meant using
multiple monitors, which provided the bonus of independently pageable
monitors, but at the cost of a harsh apartheid restricting windows to
the screen they started on.

That restriction turned inconvenient enough that since the advent of
"humongously big" (>1920x1440), I have mostly given that option up and
just stuck with one big screen.

Nonetheless, I now find myself longing somewhat for multiple display
again, for both ergonomic positioning/orientation considerations and the
flexibility of independent paging. Also, my current workstation
consists of one really big (2560x1600) screen, which provides more space
than I tend to need at any given time, but leaves some corners (where
the pager, icon managers, status controls and clock, as well as a few
sticky background windows tend to be found) a bit far from sight.

I actually think two smaller identical screens as we have available
could be more convenient if the software let me use them as I like. I
thought maybe some development in X11, display drivers, FVWM or what not
in the last years would make that option more viable.

I recall the window apartheid problem stems from the X11 protocol where
resources and element handles are tied to a screen. Of course one can
get around that with single logical screen solutions like Xinerama, but
then window manager's paging unit seems to always be the whole logical
screen, which somewhat defeats the point. (I also don't really care for
such visual tricks like having a window "in between" two or more screens
cut at arbitrary pixel positions, but I recall Xinerama has some hints
that FVWM can use for placement within physical screens and snapping at
the boundaries by default)

I wonder if other people work with multiple monitors in a similar way as
I might, and maybe there are some solutions I didn't think of. The
restriction in the X11 protocol is probably hard to break as software
depends on things working a specific way. But perhaps there's some way
to use a single logical screen, and then have a further logical division
of the screen in the window manager on top of that aligning with the
actual physical boundaries, with independent pagers for each physical
screen?

Ideally (for me) with a mechanism like that, the physical screen's
paging units could be decoupled from the actual pool of workspaces, so I
could just have one set of workspaces as I do, and at any time choose
what workspace each screen should map to. But something akin to
separate X screens, just with the ability to move windows between them
would already enough for me to switch from my current humongously big
screen to two smaller ones again.

I'm interested in any personal experiences and suggestions people might
have.

Cheers,
-- Tom
Tethys .
2011-07-19 16:28:52 UTC
Permalink
Post by Tom Alsberg
That restriction turned inconvenient enough that since the advent of
"humongously big" (>1920x1440)
Your definition of "humongously big" is "barely usable" in my world :-)
Lack of QXGA support has kept me away from LCDs for a long time.
That's starting to change, but they're still hideously expensive.
Post by Tom Alsberg
I wonder if other people work with multiple monitors in a similar way
as I might, and maybe there are some solutions I didn't think of [...]
But perhaps there's some way to use a single logical screen, and then
have a further logical division of the screen in the window manager
on top of that aligning with the actual physical boundaries, with
independent pagers for each physical screen?
FVWM already supports a distinction between logical and physical screens.
For example, I have EdgeMoveResistance set to allow easy window alignment
with the edge of my physical monitors, even though that may be in the
middle of my single logical screen. I'm not sure what you want to do
with paging, though. If I'm understanding you correctly, you want to
be able to have a separate pager for each physical screen? But if so,
I suspect you haven't thought it through. What do you do when a window
straddles two physical screens and you change page on one of them,
for example?

Tet
--
"Java is a DSL for taking large XML files and converting them to stack
traces" -- Bulat Shakirzyanov
Tom Alsberg
2011-07-19 20:38:38 UTC
Permalink
Post by Tethys .
Post by Tom Alsberg
That restriction turned inconvenient enough that since the advent of
"humongously big" (>1920x1440)
Your definition of "humongously big" is "barely usable" in my world :-)
Well, unless you started quite late, I'd guess suppose you have used
smaller screens for a long time. I did not mean it to imply "excessive"
(as mentioned, it's a real usability and productivity matter in my work,
which is why I have a 2560x1600 screen on my desk), but rather compared
to the 1280x1024 and 1600x1200 that have been the standard on graphical
workstations for a long time (or even the 1024x768 on common X
terminals), which made multiple screens a great way to supplement the
space.
Post by Tethys .
Lack of QXGA support has kept me away from LCDs for a long time.
That's starting to change, but they're still hideously expensive.
Expensive, compared to QXGA CRTs before?

I recall good 1280x1024 CRTs cost more ten years ago than good 2560x1440
LCDs cost now. (sane 4x3 or 5x4 aspect ratios are becoming really hard
to find though -- everybody now does the "widescreen" fad). And
nowadays new CRTs seem rare and more expensive than similarly sized
LCDs.
Post by Tethys .
FVWM already supports a distinction between logical and physical screens.
For example, I have EdgeMoveResistance set to allow easy window alignment
with the edge of my physical monitors, even though that may be in the
middle of my single logical screen. I'm not sure what you want to do
with paging, though. If I'm understanding you correctly, you want to
be able to have a separate pager for each physical screen?
Right. I'd like to change page or workspace on one screen without
affecting the other(s).

Ideally the set of workspaces would be shared between all screens, but
I'd be better already with just a per-screen set, and some way (that
doesn't need to be as transparent as dragging with the points) to move a
window between screens.
Post by Tethys .
But if so, I suspect you haven't thought it through. What do you do
when a window straddles two physical screens and you change page on
one of them, for example?
This being quite hypothetical as I mentioned I wouldn't want windows
straddling two physical screens anyway (I'd find it hard to read with a
gap of some centimetres between neighbouring pixel columns), I'd say
since window positions are defined by their top-left corner, it should
be associated with the page that corner is in.
Post by Tethys .
Tet
Cheers,
-- Tom
Post by Tethys .
-- "Java is a DSL for taking large XML files and converting them to
stack traces" -- Bulat Shakirzyanov
Love that quote, BTW.
Thomas Adam
2011-07-19 16:35:33 UTC
Permalink
Nonetheless, I now find myself longing somewhat for multiple display again,
for both ergonomic positioning/orientation considerations and the
flexibility of independent paging.  Also, my current workstation consists of
one really big (2560x1600) screen, which provides more space than I tend to
need at any given time, but leaves some corners (where the pager, icon
managers, status controls and clock, as well as a few sticky background
windows tend to be found) a bit far from sight.
Use SLS (see "man fvwm") if you want to partition your screen further.

-- Thomas Adam
Tom Alsberg
2011-07-19 20:51:12 UTC
Permalink
Post by Thomas Adam
Nonetheless, I now find myself longing somewhat for multiple display again,
for both ergonomic positioning/orientation considerations and the
flexibility of independent paging.  Also, my current workstation consists of
one really big (2560x1600) screen, which provides more space than I tend to
need at any given time, but leaves some corners (where the pager, icon
managers, status controls and clock, as well as a few sticky background
windows tend to be found) a bit far from sight.
Use SLS (see "man fvwm") if you want to partition your screen further.
Do you mean the XineramaSls option? Would this do any more than
simulate Xinerama features (i.e. default placement and geometry
definitions) on a single screen? I don't see anything related to my
issue mentioned in the man page in that context.

(In particular, would something using SLS somehow allow me to switch
pages or workspaces independently per screen?)
Post by Thomas Adam
-- Thomas Adam
Thanks,
-- Tom
Thomas Adam
2011-07-19 22:35:08 UTC
Permalink
Post by Tom Alsberg
(In particular, would something using SLS somehow allow me to switch
pages or workspaces independently per screen?)
No, and adding support for this is impossible until I've finished the XRandR
support for FVWM, which is no small feat, I might add. Even once that's
implemented, restructuring how pages would operate is no small feat either
-- especially since you need to look at how they inter-relate with logical
screens; and typically the best layout is a linear one for that.

Don't forget though that FVWM allows for a desktop size of a grid, with
three dimensions, and representing that to be independent of one monitor,
but potentially the same on both, is hard.

Seriously.

The only reason it's been made doable for things like XMonad is because
they've built their entire data structure around this concept, and at the
same time shot themselves in the foot.

You're not the first person to ask for this, nor are you the first to dream
up the ideas in your original post, no matter how original you think of
them. But fundamentally this comes down to how/who/when this is going to be
developed.

You're going to be waiting a long time. But thanks for the implied
encouragement if nothing else.

-- Thomas Adam
--
"Deep in my heart I wish I was wrong. But deep in my heart I know I am
not." -- Morrissey ("Girl Least Likely To" -- off of Viva Hate.)
Tom Alsberg
2011-07-20 10:14:06 UTC
Permalink
Hi, Thomas.

Thanks for your answer! I didn't mean my post to sound like a request
or expectation from the developers. Sorry if it's been taken that way.
Post by Thomas Adam
Post by Tom Alsberg
(In particular, would something using SLS somehow allow me to switch
pages or workspaces independently per screen?)
No, and adding support for this is impossible until I've finished the XRandR
support for FVWM, which is no small feat, I might add. Even once that's
implemented, restructuring how pages would operate is no small feat either
-- especially since you need to look at how they inter-relate with logical
screens; and typically the best layout is a linear one for that.
I'm not sure I understand what you mean, but in any case I fully realize
why it's not easy, especially with the way X11 ties the screen to
DISPLAY, requiring stuff like Xinerama to actually let windows roam in
the first place.
Post by Thomas Adam
Don't forget though that FVWM allows for a desktop size of a grid,
with three dimensions, and representing that to be independent of one
monitor, but potentially the same on both, is hard.
Are you referring to the possibility of sharing the same set of
workspaces between the screens?
Post by Thomas Adam
Seriously.
The only reason it's been made doable for things like XMonad is
because they've built their entire data structure around this concept,
and at the same time shot themselves in the foot.
Interesting. I didn't know XMonad does that. I haven't looked at it
that much because I'm not comfortable with tiling window management.
(My windows often overlap, and their sizes often need to be very
specific)
Post by Thomas Adam
You're not the first person to ask for this, nor are you the first to
dream up the ideas in your original post, no matter how original you
think of them.
To the contrary -- I was assuming that others had similar ideas and
might have found solutions that I haven't, and was posting in the chance
some had some suggestions.
Post by Thomas Adam
But fundamentally this comes down to how/who/when this is going to be
developed.
Sure -- as mentioned, I wasn't coming up with expectations from the
developers. Just thought this list would be an appropriate forum to
seek suggestions in.
Post by Thomas Adam
You're going to be waiting a long time. But thanks for the implied
encouragement if nothing else.
No problem. If something like that were ever implemented I'd of course
be greatful, but I'm thankful anyway for that window manager I'm using
for over a decade now -- I'll just stick to one big screen for now.
Post by Thomas Adam
-- Thomas Adam
Cheers,
-- Tom
Thomas Adam
2011-07-20 19:10:50 UTC
Permalink
Post by Tom Alsberg
Post by Thomas Adam
Don't forget though that FVWM allows for a desktop size of a grid,
with three dimensions, and representing that to be independent of
one monitor, but potentially the same on both, is hard.
Are you referring to the possibility of sharing the same set of
workspaces between the screens?
Yes, as well as allowing them to be independant per screen.
Post by Tom Alsberg
No problem. If something like that were ever implemented I'd of
course be greatful, but I'm thankful anyway for that window manager
I'm using for over a decade now -- I'll just stick to one big screen
for now.
It is annoing me, I know. That's why I'm writing support for it. :)

-- Thomas Adam
--
"Deep in my heart I wish I was wrong. But deep in my heart I know I am
not." -- Morrissey ("Girl Least Likely To" -- off of Viva Hate.)
Bert Geens
2011-07-26 07:14:25 UTC
Permalink
Post by Tom Alsberg
Hi, Thomas.
Thanks for your answer!  I didn't mean my post to sound like a request or
expectation from the developers.  Sorry if it's been taken that way.
Post by Thomas Adam
Post by Tom Alsberg
(In particular, would something using SLS somehow allow me to switch
pages or workspaces independently per screen?)
No, and adding support for this is impossible until I've finished the
XRandR support for FVWM, which is no small feat, I might add.  Even once
that's implemented, restructuring how pages would operate is no small feat
either -- especially since you need to look at how they inter-relate with
logical screens; and typically the best layout is a linear one for that.
I'm not sure I understand what you mean, but in any case I fully realize why
it's not easy, especially with the way X11 ties the screen to DISPLAY,
requiring stuff like Xinerama to actually let windows roam in the first
place.
Post by Thomas Adam
Don't forget though that FVWM allows for a desktop size of a grid, with
three dimensions, and representing that to be independent of one monitor,
but potentially the same on both, is hard.
Are you referring to the possibility of sharing the same set of workspaces
between the screens?
Post by Thomas Adam
Seriously.
The only reason it's been made doable for things like XMonad is because
they've built their entire data structure around this concept, and at the
same time shot themselves in the foot.
Interesting.  I didn't know XMonad does that.  I haven't looked at it that
much because I'm not comfortable with tiling window management.  (My windows
often overlap, and their sizes often need to be very specific)
Post by Thomas Adam
You're not the first person to ask for this, nor are you the first to
dream up the ideas in your original post, no matter how original you think
of them.
To the contrary -- I was assuming that others had similar ideas and might
have found solutions that I haven't, and was posting in the chance some had
some suggestions.
Post by Thomas Adam
But fundamentally this comes down to how/who/when this is going to be
developed.
Sure -- as mentioned, I wasn't coming up with expectations from the
developers.  Just thought this list would be an appropriate forum to seek
suggestions in.
Post by Thomas Adam
You're going to be waiting a long time.  But thanks for the implied
encouragement if nothing else.
No problem.  If something like that were ever implemented I'd of course be
greatful, but I'm thankful anyway for that window manager I'm using for over
a decade now -- I'll just stick to one big screen for now.
This is ancient and probably doesn't work properly anymore (if it even
still compiles) but an attempt was made to do this in the past and I
archived the module that did this (just in case anyone would want to
pick it up) here:

http://www.lair.be/files/fvwm/modules/FvwmDX-0.0.2.tar.gz

Note that I /archived/ this module in 2006, it probably dates back to
2004 or so and is probably a very very bitrotten ( and ugly?) hack.

Kind Regards

Bert Geens

Loading...