Re: Edge flipping / edge resistance?




First off, running multiple monitors each with its own xserver IS NOT xinerama. It never has been, and never will be. Xinerama uses a single xserver to drive multiple monitors making them appear as a single screen. You DO NOT use x2x with xinerama, since there's only one xserver. Xinerama allows screens to span multiple monitors, seperate xservers do not allow that. If you can have a window split across two monitors, then your running xinerama. If you can't, you're not.

From your description, you are not running xinerama. Perhaps you would
like to switch.  Xinerama is the Way And The Light.  Drink the Kool-Aid.

I'm sorry to be so terse, but 90% of the time xinerama comes up, people end up participating in the conversation that demonstrably don't understand this difference, and as a xinerama user, this REALLY annoys me.

Now that that's out of the way...

Sawfish already supports virtual screens like FVWM. They're called, "viewports", and they are disabled by default. Add this code to your .sawfishrc:

	(setq customize-command-classes '(default viewport))
	(setq viewport-dimensions '(3 . 3))

Viewports differ from "virtual desktops" in that viewports are a 2d matrix of screens. The user can switch between the viewports by moving the mouse to the edge of the screen. Windows can even be dragged between viewports. I believe edge resistance can be controlled via a control panel.

Desktops on the other hand are simply a single dimension list of screen without any spacial relationship between them. There's only a numerical order. (i.e. There's just "next" and "previous", not "above", "below", "left", or "right".) Also, unlike with viewports, windows can not span multiple dekstops.

Both viewports and desktops can be enabled simultaneously. In this case, the desktops will contain the viewports. For example, in my setup I have two desktops and 3x3 viewports. So, in total I have 18 different "screens" on which to hold windows. Desktop 0, has a 3x3 matrix of viewports, and desktop 1 has a second 3x3 matrix of viewports.

If you are using xinerama, enabling viewports is invaluable. When you're logged into a xinerama desktop, you can have a window placed at a location like 1900x341. (Assuming monitors placed side by side, each running at a resolution of 1600x1200, this would place the window at 300x341 on the right monitor.) When you login to a single head machine, that window may try to draw itself at 1900x341, and therefore appear off the screen, with no way to grab it. (Now I that I think about it, the new placement method may prevent this now.) With viewports, the window is placed at 300x341 on the viewport to the immediate right of the current viewport.

John: This should really be added to the FAQ, since this is the second or third time I've answered this question in the last year.


On Thu, 24 Feb 2005 era+gmane iki fi wrote:

FVWM and some other window managers had a feature to scroll between
virtual screens if you left the mouse pointer on the edge for long
enough. There was a parameter "edge resistance" to control how long
you'd have to "push" on the window edge in order to switch to the
adjacent virtual screen.

I'd really like to have this in Sawfish, not so much for the virtual
screen switching (keyboard mappings are ideal for that :-) as for
making x2x usable. This is a simple little helper which allows me to
use one mouse and keyboard on two X servers; I have the computers
running side by side and I switch screens by -- you guessed it --
moving the mouse pointer over the edge between the two monitors.
<http://freshmeat.net/projects/x2x/>

This is all very nice, but you lose the "mile wide" edge behavior of
your monitor which normally makes it easy to resize windows which are
flush to the edge of the screen, etc. If you're trying to manipulate
something near the edge of the screen, you trip over to the other
screen all the time. Now, of course, edge resistance would solve this
beautifully.

I can't be the only one who wants this feature, so I thought I'd ask
here if anybody has any code to share before I start on my own hack
(which is predestined to never be finished anyway).

I looked in the bugzilla and on the wiki but couldn't find anything
which looked like it's even vaguely similar. Maybe the "infinite desktop"
<http://sawfish.uberstyle.net/uploads/SawfishWiki/infinitedesktop.jl>
could be useful as a starting point, but other than that, I haven't
found anything concrete.

In <http://www.linuxdocs.org/HOWTOs/Xinerama-HOWTO-8.html> the author
alleges that some sort of edge flipping is present in "bleeding-edge"
Sawfish -- can anybody elaborate on this, or perhaps even provide
closer coordinates?

/* era */

--
formail -s procmail <http://www.iki.fi/era/spam/ >http://www.euro.cauce.org/
cat | more | cat<http://www.iki.fi/era/unix/award.html>http://www.debian.org/



--
Jonathan Koren World domination? I'll leave that to the jkoren cs siu edu religious nuts and Republicans, thank you.
http://www.cs.siu.edu/~jkoren/		-- The Monarch, "Venture Brothers"




[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]