ratpoison-devel
[Top][All Lists]
Advanced

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

Re: [RP] off topic: xinerama


From: John Meacham
Subject: Re: [RP] off topic: xinerama
Date: Fri May 9 20:23:09 2003
User-agent: Mutt/1.4i

the Xinerama interface is extremly simple. basically, you have a big
root window which is only visible where screens happen to be located on
it. to find out where these screens are, just call:

#include <X11/extensions/Xinerama.h>

XineramaScreenInfo * 
XineramaQueryScreens(
   Display *dpy,
   int     *number
);

it places the number of screens in *number and returns an array of
screen structures which look like:

typedef struct {
   int   screen_number;
   short x_org;
   short y_org;
   short width;
   short height;
 } XineramaScreenInfo;


giving their origins and size. any area of the root window which does
not have a screen covering it is a 'dead area' since it is unviewable.
this is the only client support Xinerama supplies.

it would be easy for ratpoison to check if xinerama is running and if so
create immutable frames exactly where the screens are. don't forget the
standard non Xinerama multi-screen support, as Xinerama has it's
tradeoffs and isn't always the best choice for multi-monitor support.

        John


On Fri, May 09, 2003 at 02:54:00PM -0700, Shawn Betts wrote:
> twb <address@hidden> writes:
> 
> > now some devel talk:
> > It seems that RP treats a xinerama screen no different.  I think the 
> > best way for it to work would be to automatically divide into heads on 
> > start.  Dead panes (when screens are unequal height/width) need to be 
> > marked so stuff doesn't get dropped there.  Normal screen division 
> > doesn't affect the head-panes; you can turn head-panes on or off with h-
> > p-on and h-p-off.  You also need to be able to switch head pane, like 
> > nextscreen() now.
> 
> I don't know if this works since I don't have a xinerama setup, but I
> would imagine it *should* work:
> 
> Since you can use frestore to give ratpoison a list of frames, you can
> customize these frames and infact make overlapping frames and frames
> that exist outside the screen. While this doesn't seem useful, one
> thing you *could* do is use this machanicsm to create 2 frames, 1 for
> the first monitor and 1 for the second monitor.
> 
> (this is all based on my near 0 knowledge of xinerama)
> 
> So, as an example, say you have a 640x480 screen to the left of your
> 1024x768 monitor and you want rp to work with them so you don't get
> dead space. You could run the following to divide rp into 2 frames
> that fit these monitors:
> 
> ratpoison -c "frestore 0 0 0 640 480 0 1,1 640 0 1664 768 0 0"
> 
> In general you would do:
> 
> ratpoison -c "frestore 0 0 0 w1 h1 0 1,1 w1 0 w1+w2 h2 0 0"
> 
> where w1xh2 is the dimensions of your left monitor and w2xh2 is the
> dimensions of right monitor.
> 
> This will give you two empty frames in each monitor (if I understand
> things correctly).
> 
> I encourage you to experiment, since I can't :).
> 
> Shawn
> 
> 
> 
> -------------------------------------------------------
> Enterprise Linux Forum Conference & Expo, June 4-6, 2003, Santa Clara
> The only event dedicated to issues related to Linux enterprise solutions
> www.enterpriselinuxforum.com
> 
> _______________________________________________
> Ratpoison-devel mailing list
> address@hidden
> https://lists.sourceforge.net/lists/listinfo/ratpoison-devel

-- 
---------------------------------------------------------------------------
John Meacham - California Institute of Technology, Alum. - address@hidden
---------------------------------------------------------------------------



reply via email to

[Prev in Thread] Current Thread [Next in Thread]