Where to start? Implementing independent workspace switching with Xinerama

Omari Stephens xsdg+xfcedev at mit.edu
Wed Apr 18 15:29:11 CEST 2007

I'd like to implement independent workspace switching in Xinerama.  Specifically, this will allow a person with multiple screens and Xinerama extensions to switch workspaces on one screen while leaving the workspaces on other screens untouched.  The current Xinerama workspace behavior is a blocking drawback for me (it completely disrupts the way I use workspaces), and is the only reason I'm still using multihead rather than Xinerama.

After peeking through the source code a bit, I'm not really sure where to start.  However, I've come up with two potential plans of attack.  For the first, I would make xfwm4 understand that there are n sets of workspaces (for an n-screen setup), and that it should concurrently show clients from 1 of each of the n sets of workspaces.  By requiring that a workspace in class k only contain clients that are on screen k, it seems like this could work.

For the second plan, xfwm4 and friends would have to gain some conception of virtual workspaces.  That is, it is my possibly-mistaken understanding that xfwm4 considers a "workspace" to be a set of clients that can occupy any location in a single screen.  Since Xinerama presents (with special metadata) a single oddly-shaped screen to xfwm4, xfwm4 currently only supports having a single workspace span the entire oddly-shaped screen (which may encompass a display containing n physical screens).  A virtual workspace might be some partition of a workspace (with physical extents restricted to match one of the physical screens) that could be swapped out for another partition from a different workspace.

A further extension of this idea might be the ability to move entire workspaces from one screen to another.  Considering, for example, someone with 2 monitors and an email workspace, an instant message workspace, and a web browser workspace, this might allow that person to look at a set of web pages while chatting with someone via instant message and subsequently to either send email related to the web pages or related to the instant message discussion.

That said, any suggestions on where to start?  As it stands, the first plan seems like it would be less painful to implement, but the second may be more robust; I'm not sure.  Any help or tips would be appreciated.


-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 189 bytes
Desc: OpenPGP digital signature
URL: <http://mail.xfce.org/pipermail/xfce4-dev/attachments/20070418/742b530a/attachment.pgp>

More information about the Xfce4-dev mailing list