[dwm] tag rule for vlc?

2009-04-23 Thread Preben Randhol
Hi

I'm trying to move vlc to tag 5. The problem is that I don't seem to
manage to catch vlc in any way. I use the cvlc. I have tried

vlc, NULL, NULL, 1  4, False.

I have tired all variant of uppercase and lowercase. xwininfo reports VLC
(XVideo output). I have tried this both for class and for title as well
as

NULL, NULL, VLC (XVideo output), 1  4, False

But it won't catch the vlc. have anybody been successful with this? I use
ubuntu Jaunty 9.04 and vlc 0.9.9a





Re: [dwm] tag rule for vlc?

2009-04-23 Thread Delta
Hi Preben,

Try this one for sending it to tag 6, for example:

{ NULL, NULL,   VLC media player, 1  5, 
False },

Normally you can see the WM_CLASS or WM_NAME properties with the xprop command 
(by running it and clicking in the desired window).

Also VLC have a parameter --video-title=string where you can set the title of 
the video windows in case it's not embedded in the interface.

Kind Regards,
Delta


On 2009-04-23, 14:04 
Preben Randhol (rand...@pvv.org) wrote:

 Hi
 
 I'm trying to move vlc to tag 5. The problem is that I don't seem to
 manage to catch vlc in any way. I use the cvlc. I have tried
 
 vlc, NULL, NULL, 1  4, False.
 
 I have tired all variant of uppercase and lowercase. xwininfo reports VLC
 (XVideo output). I have tried this both for class and for title as well
 as
 
 NULL, NULL, VLC (XVideo output), 1  4, False
 
 But it won't catch the vlc. have anybody been successful with this? I use
 ubuntu Jaunty 9.04 and vlc 0.9.9a
 
 
 



Re: [dwm] tag rule for vlc?

2009-04-23 Thread Preben Randhol
 Hi Preben,

 Try this one for sending it to tag 6, for example:

 { NULL,   NULL,   VLC media player, 
 1  5, False },

 Normally you can see the WM_CLASS or WM_NAME properties with the xprop
 command (by running it and clicking in the desired window).

 Also VLC have a parameter --video-title=string where you can set the
 title of the video windows in case it's not embedded in the interface.

 Kind Regards,
 Delta

Unfortunately VLC doesn't seem to set a class at least not for the window
the video is shown in. And even if I set --video-title=VLC and then use

{ NULL, NULL,   VLC,  1  5, False },

it doesn't work. Anyway VLC is a bit broken at the moment, so I guess I'll
wait to see when next version comes.





Re: [dwm] OT: Wireless in dwm

2009-04-23 Thread Don Harper
I use a little program called wifiroamd: 
Name: wifiroamdRelocations: (not relocatable)
Version : 1.15  Vendor: duckland.org
Release : 1.fc10Build Date: Sat 18 Apr 2009 
05:34:20 AM CST
Install Date: Sat 18 Apr 2009 05:35:09 AM CST  Build Host: 
loki.home.duckland.org
Group   : System Environment/Base   Source RPM: 
wifiroamd-1.15-1.fc10.src.rpm
Size: 53849License: GPL+
Signature   : DSA/SHA1, Sat 18 Apr 2009 05:34:21 AM CST, Key ID e87d8bf6d1492e0c
Packager: duckland.org
URL : http://www.tummy.com/Community/software/wifiroamd/
Summary : Automatic WiFi connection (re)establishment daemon
Description :
WiFiRoamd is a program that monitors your wireless device to keep it
connected to a good access point.  It will scan looking for a known AP, or
will try the AP with the strongest un-encrypted signal.  If a script is
found for the specific AP ESSID or MAC address is found, that script is
run.  Otherwise, a default script is run.

After that script is run, scripts in the up.d directory are run.  These
implement extra functionality such as DHCP, ESSID pinning (where it
explicitly does iwconfig $DEVICE essid $ESSID, so that you don't
accidentally wander to another AP) and other local things such as
restarting OpenVPN, etc.


Don

On Wed, Apr 22, 2009 at 06:31:43PM -0400, Ammar James wrote to To dwm mail list:
 here is what i do:

 fire up urxvt:
 # iwlist wlan0 scan
 # iwconfig wlan0 essid NameOfWirelessNetwork key foobar123 #ap {MAC
 address} (optional)
 # iwconfig   #just to see if it worked.
 # dhcpcd -d wlan0  #-d flag stands for debug, but its really
 analogous to --verbose
 # firefox#if all goes well.


 hope that helps.

 On Tue, Apr 21, 2009 at 4:29 PM, Lee Azzarello l...@dropio.com wrote:
  Yea, thanks Niki!

  -lee

  On Mon, Apr 20, 2009 at 2:11 PM, Niki Yoshiuchi aplu...@gmail.com wrote:
  I can send you my wpa_supplicant.conf plus some scripts I wrote if you
  want.  I don't have them at work but I can get them to you in a couple of
  hours.

  They could probably use some work, but you should get the basic idea.

  On Mon, Apr 20, 2009 at 2:04 PM, Lee Azzarello l...@dropio.com wrote:

  On Mon, Apr 20, 2009 at 10:05 AM, Jeremy Jay dinkuma...@gmail.com wrote:
   I used to use stalonetray to be able to access nm-applet for wireless.

   But I've recently gotten a pretty good config going for wpa_supplicant
   that auto-connects to my secure wireless, but also uses any unsecured
   networks automatically when I'm on the road. It's pretty straightforward
   to setup, and it connects faster than network manager in most cases.

  Could you point to a decent tutorial for configuring wpa_supplicant?
  The man page is like reading an architectural spec for a nuclear power
  plant when all you wanted to do was find a light switch.

  -lee






-- 
..
.  Don Harper, RHCE   .   He who would travel happily.
.  ducku...@gmail.com . must travel light. - Antoine de  .
. .  Saint-Exupery   .
..


pgpe4S04ZAhTU.pgp
Description: PGP signature


[dwm] uzbl. A browser that adheres to the unix philosophy.

2009-04-23 Thread Dusan
Just to notify community:

http://bbs.archlinux.org/viewtopic.php?id=70700p=1

Web kit minimal browser, you will find it very interesting.




Re: [dwm] uzbl. A browser that adheres to the unix philosophy.

2009-04-23 Thread hiro
Thanks, that sounds great!
Now we only need a working flash replacement:(
But I'm eager to try this out at home this evening.

On Thu, Apr 23, 2009 at 5:21 PM, Dusan ef_...@yahoo.com wrote:
 Just to notify community:

 http://bbs.archlinux.org/viewtopic.php?id=70700p=1

 Web kit minimal browser, you will find it very interesting.






Re: [dwm] uzbl. A browser that adheres to the unix philosophy.

2009-04-23 Thread Ian Daniher
Awesome, awesome idea but horrendous implementation.
I'm sending this email from inside uzbl, but it's choking horribly on
rendering gmail's ajax chat. Uzbl is much slower than /firefox/ with ten
tabs.
I'll be interested to see how this project progresses.
--
Ian

On Thu, Apr 23, 2009 at 11:45 AM, hiro 23h...@googlemail.com wrote:

 Thanks, that sounds great!
 Now we only need a working flash replacement:(
 But I'm eager to try this out at home this evening.

 On Thu, Apr 23, 2009 at 5:21 PM, Dusan ef_...@yahoo.com wrote:
  Just to notify community:
 
  http://bbs.archlinux.org/viewtopic.php?id=70700p=1
 
  Web kit minimal browser, you will find it very interesting.
 
 
 




Re: [dwm] uzbl. A browser that adheres to the unix philosophy.

2009-04-23 Thread Evgeny Grablyk
I like the idea, and browser itself, so far.

I'm sending this email from inside uzbl, but it's choking horribly on 
rendering gmail's ajax chat. Uzbl is much slower than /firefox/ with ten tabs.
Sending this from uzbl, gmail works fine except attachment feature.



Re: [dwm] uzbl. A browser that adheres to the unix philosophy.

2009-04-23 Thread Dusan
On Thu, 23 Apr 2009 12:02:18 -0400
Ian Daniher it.dani...@gmail.com wrote:

 Awesome, awesome idea but horrendous implementation.
 I'm sending this email from inside uzbl, but it's choking horribly on
 rendering gmail's ajax chat. Uzbl is much slower than /firefox/ with
 ten tabs.
 I'll be interested to see how this project progresses.
 --
 Ian
 
 On Thu, Apr 23, 2009 at 11:45 AM, hiro 23h...@googlemail.com wrote:
 
  Thanks, that sounds great!
  Now we only need a working flash replacement:(
  But I'm eager to try this out at home this evening.
 
  On Thu, Apr 23, 2009 at 5:21 PM, Dusan ef_...@yahoo.com wrote:
   Just to notify community:
  
   http://bbs.archlinux.org/viewtopic.php?id=70700p=1
  
   Web kit minimal browser, you will find it very interesting.
  
  
  
 
 

I am not having any problems but rendering related ones are
probably because of webkit version. I have 1.1.5-1 webkit on archlinux
and it's fast.




[dwm] dual-head and floats on all tags (and one feature request)

2009-04-23 Thread David E. Thiel
Hello,

I'm using hg tip with the push and gaplessgrid patches, with two
monitors (laptop and LCD). When I put a window on the screen which
handles floats, then change focus to a tiled window on the main screen
somewhere, then switch to another tag and back again, the last window
that had focus on that tag is focused. 

However, if I send the floating window to all tags, the floating window
takes focus on every tag change, no matter what window was focused last.
I can't see what's making this happen, but it doesn't seem like the
right behavior.

The feature request that I thought might be useful is a function to
jump to urgent windows. For example, if you have Pidgin on a tag with 9
windows or so on it and you see it turn urgent when on another tag, a
keybinding to jump straight to the tag and window which needs attention
would be handy, rather than switching to the tag and then manually
flipping through the client list. Thoughts?

Thanks,
David



Re: [dwm] dual-head and floats on all tags (and one feature request)

2009-04-23 Thread Guillaume Quintin
For the multihead, you can try my patch (even if it is not really the 
same than having floating windows on the second screen)


Basically, my patch stores all the informations on all detected monitors 
in a table. There are two functions :


win2mon : moves the selected client to the monitor number arg-i. The 
client becomes floating, and visible on all tags (I find this useful but 
you can remove it)


win2main : moves the selected client back to the tag arg-ui and make it 
tiled.


It is up to you to configure your keys in your config.h.


For the urgent hint patch I think that you can do the patch on your own, 
I'll be interested in it. If I have time tomorrow I will give it a try 
unless someone gives it before.


--
Kind regards
Guillaume Quintin
--- dwm.c.orig  2009-04-18 13:49:24.0 +0200
+++ dwm.c   2009-04-20 00:49:20.971772171 +0200
@@ -127,6 +127,11 @@
Bool isfloating;
 } Rule;
 
+/* struct to store other monitors info */
+typedef struct {
+   int wx,wy,ww,wh;
+} Monitor;
+
 /* function declarations */
 static void applyrules(Client *c);
 static Bool applysizehints(Client *c, int *x, int *y, int *w, int *h);
@@ -203,6 +208,8 @@
 static int xerrordummy(Display *dpy, XErrorEvent *ee);
 static int xerrorstart(Display *dpy, XErrorEvent *ee);
 static void zoom(const Arg *arg);
+void win2mon(const Arg *);
+void win2main(const Arg *);
 
 /* variables */
 static char stext[256];
@@ -210,6 +217,7 @@
 static int sx, sy, sw, sh; /* X display screen geometry x, y, width, height */ 
 static int by, bh, blw;/* bar geometry y, height and layout symbol width */
 static int wx, wy, ww, wh; /* window area geometry x, y, width, height, bar 
excluded */
+Monitor *monitors;int nb_mon; /* the other monitors */
 static unsigned int seltags = 0, sellt = 0;
 static int (*xerrorxlib)(Display *, XErrorEvent *);
 static unsigned int numlockmask = 0;
@@ -1501,21 +1509,35 @@
int n, i = 0;
XineramaScreenInfo *info = NULL;
 
+   if ( monitors ) { free(monitors); }
+
/* window area geometry */
-   if(XineramaIsActive(dpy)  (info = XineramaQueryScreens(dpy, n))) { 
-   if(n  1) {
-   int di, x, y;
-   unsigned int dui;
-   Window dummy;
-   if(XQueryPointer(dpy, root, dummy, dummy, x, y, 
di, di, dui))
-   for(i = 0; i  n; i++)
-   if(INRECT(x, y, info[i].x_org, 
info[i].y_org, info[i].width, info[i].height))
-   break;
+   if(XineramaIsActive(dpy)  (info = XineramaQueryScreens(dpy, n)))
+   {
+   nb_mon = n - 1;
+   monitors = malloc(n * sizeof(Monitor));
+   if ( !monitors ) { die(Not enough memory for monitors' 
informations.); }
+
+   int di, x, y;
+   unsigned int dui;
+   Window dummy;
+   if(XQueryPointer(dpy, root, dummy, dummy, x, y, di, di, 
dui))
+   {
+   for(i = 0; i  n; i++)
+   {
+   if(INRECT(x, y, info[i].x_org, info[i].y_org, 
info[i].width, info[i].height))
+   {
+   wx = info[i].x_org;
+   wy = showbar  topbar ?  info[i].y_org 
+ bh : info[i].y_org;
+   ww = info[i].width;
+   wh = showbar ? info[i].height - bh : 
info[i].height;
+   }
+   monitors[i].wx = info[i].x_org;
+   monitors[i].wy = info[i].y_org;
+   monitors[i].ww = info[i].width;
+   monitors[i].wh = info[i].height;
+   }
}
-   wx = info[i].x_org;
-   wy = showbar  topbar ?  info[i].y_org + bh : info[i].y_org;
-   ww = info[i].width;
-   wh = showbar ? info[i].height - bh : info[i].height;
XFree(info);
}
else
@@ -1682,6 +1704,23 @@
arrange();
 }
 
+void win2mon(const Arg *arg)
+{
+   if ( arg-i  nb_mon || !sel ) { return; }
+   Monitor *m = monitors[arg-i];
+   sel-tags = ~0;
+   sel-isfloating = 1;
+   resize(sel,m-wx,m-wy,m-ww - 2 * sel-bw,m-wh - 2 * sel-bw);
+   arrange();
+}
+
+void win2main(const Arg *arg)
+{
+   if ( !sel ) { return; }
+   sel-isfloating = 0;
+   tag(arg);   
+}
+
 int
 main(int argc, char *argv[]) {
if(argc == 2  !strcmp(-v, argv[1]))


Re: [dwm] dual-head and floats on all tags (and one feature request)

2009-04-23 Thread Jeremy Jay
This is completely untested, but should do what you ask, just add to
config.h and bind it to a key...

--
void
focusurgent(const Arg *arg) {
  Client *c;
  for(c = stack; c  !(c-isurgent); c = c-snext);
  if(sel  sel != c) {
grabbuttons(sel, False);
XSetWindowBorder(dpy, sel-win, dc.norm[ColBorder]);
  }
  if(c) {
view(c-tags);
clearurgent(c);

detachstack(c);
attachstack(c);
grabbuttons(c, True);
XSetWindowBorder(dpy, c-win, dc.sel[ColBorder]);
XSetInputFocus(dpy, c-win, RevertToPointerRoot, CurrentTime);
  }
  else
XSetInputFocus(dpy, root, RevertToPointerRoot, CurrentTime);
  sel = c;
  drawbar();
}
---


On Thu 23 Apr 2009 - 12:32PM, David E. Thiel wrote:
 Hello,
 
 I'm using hg tip with the push and gaplessgrid patches, with two
 monitors (laptop and LCD). When I put a window on the screen which
 handles floats, then change focus to a tiled window on the main screen
 somewhere, then switch to another tag and back again, the last window
 that had focus on that tag is focused. 
 
 However, if I send the floating window to all tags, the floating window
 takes focus on every tag change, no matter what window was focused last.
 I can't see what's making this happen, but it doesn't seem like the
 right behavior.
 
 The feature request that I thought might be useful is a function to
 jump to urgent windows. For example, if you have Pidgin on a tag with 9
 windows or so on it and you see it turn urgent when on another tag, a
 keybinding to jump straight to the tag and window which needs attention
 would be handy, rather than switching to the tag and then manually
 flipping through the client list. Thoughts?
 
 Thanks,
 David
 



Re: [dwm] uzbl. A browser that adheres to the unix philosophy.

2009-04-23 Thread pmarin
Try the last version of Dillo2. It is starting to support CSS and in
the next version (Dillo 2.1) will support keybinding.

On Thu, Apr 23, 2009 at 7:36 PM, Dusan ef_...@yahoo.com wrote:
 On Thu, 23 Apr 2009 12:02:18 -0400
 Ian Daniher it.dani...@gmail.com wrote:

 Awesome, awesome idea but horrendous implementation.
 I'm sending this email from inside uzbl, but it's choking horribly on
 rendering gmail's ajax chat. Uzbl is much slower than /firefox/ with
 ten tabs.
 I'll be interested to see how this project progresses.
 --
 Ian

 On Thu, Apr 23, 2009 at 11:45 AM, hiro 23h...@googlemail.com wrote:

  Thanks, that sounds great!
  Now we only need a working flash replacement:(
  But I'm eager to try this out at home this evening.
 
  On Thu, Apr 23, 2009 at 5:21 PM, Dusan ef_...@yahoo.com wrote:
   Just to notify community:
  
   http://bbs.archlinux.org/viewtopic.php?id=70700p=1
  
   Web kit minimal browser, you will find it very interesting.
  
  
  
 
 

 I am not having any problems but rendering related ones are
 probably because of webkit version. I have 1.1.5-1 webkit on archlinux
 and it's fast.






Re: Re: [dwm] [RFC] dwm-win32

2009-04-23 Thread Joseph Iacobucci
Marc,

I tried it out a month ago, stupidly, without reading the readme.

I think something that would help people test it is the crash handler
that you mention. I restarted to get everything working again. I'd take
a look at it again if that existed. I tend to have things open and I
don't have a spare computer just for testing things like this so losing
my windows is not an option.

On a side note, I compiled dwm in cygwin a while back and it worked
great for me in windows.

best regards,

--
Joseph Iacobucci
Email: gtg3...@mail.gatech.edu

Marc Andre Tanner wrote:
 Hi all,
 
 So a month passed since my last posting and there was absolutely 
 no feedback so I assume the reasons are:
  
  (a) you guys are in the comfortable situation of not having to 
  touch windows boxes
 
  (b) alpha1 was unusable and you didn't even bother to write a comment
 
 Anyway I have since fixed a few bugs and probably also introduced some 
 new ones. But since I most likely wont have time to look into this in 
 the near future I post my current codebase just in case someone is
 interested in it.
 
  http://www.brain-dump.org/projects/dwm-win32/dwm-win32-alpha2.zip
  http://www.brain-dump.org/projects/dwm-win32/dwm-win32-alpha2.tar.gz
  http://www.brain-dump.org/projects/dwm-win32/dwm-win32-alpha2.exe 
 
 Checkout the README.txt for key bindings, a sort of technical 
 documentation and an incomplete TODO list.
 
 As always comments and patches welcome.
 
 Thanks,
 Marc
 



Re: [dwm] [RFC] dwm-win32

2009-04-23 Thread Don Harper
On Thu, Apr 23, 2009 at 05:37:17PM -0400, Joseph Iacobucci wrote to To dwm mail 
list:
 Marc,

 I tried it out a month ago, stupidly, without reading the readme.

 I think something that would help people test it is the crash handler
 that you mention. I restarted to get everything working again. I'd take
 a look at it again if that existed. I tend to have things open and I
 don't have a spare computer just for testing things like this so losing
 my windows is not an option.

 On a side note, I compiled dwm in cygwin a while back and it worked
 great for me in windows.

I compiled dwm-win32 under cygwin, and it has been stable for me since
yesterday.  I only have found one ill-behaved app (corp. jabber client),
but the rest work just fine.

I rebuilt it to set the MOD key to just ALT, and so far, so good.


-- 
Don Harper, RHCE ducku...@gmail.com 

   The key is not to prioritize what's on your schedule, but to schedule
your priorities. - Stephen Covey


pgpghcRwoduVF.pgp
Description: PGP signature


Re: [dwm] uzbl. A browser that adheres to the unix philosophy.

2009-04-23 Thread Szabolcs Nagy
On 4/23/09, pmarin pacog...@gmail.com wrote:
 Try the last version of Dillo2. It is starting to support CSS and in
 the next version (Dillo 2.1) will support keybinding.

dillo used to be nice.. until it started using c++
i'd rather use the tcl/tk html viewer, hv3

 On Thu, Apr 23, 2009 at 11:45 AM, hiro 23h...@googlemail.com wrote:
  Now we only need a working flash replacement:(

no, flash is conceptually broken, it should not exist on the web

  On Thu, Apr 23, 2009 at 5:21 PM, Dusan ef_...@yahoo.com wrote:
   Web kit minimal browser, you will find it very interesting.

umm webkit was a 300 KLOC monster last time i checked



Re: [dwm] uzbl. A browser that adheres to the unix philosophy.

2009-04-23 Thread Kurt H Maier
On Thu, Apr 23, 2009 at 6:00 PM, Szabolcs Nagy nszabo...@gmail.com wrote:
 On 4/23/09, pmarin pacog...@gmail.com wrote:
 Try the last version of Dillo2. It is starting to support CSS and in
 the next version (Dillo 2.1) will support keybinding.

 dillo used to be nice.. until it started using c++
 i'd rather use the tcl/tk html viewer, hv3

Dillo was never nice.  It's always been crippled -- both from a
functionality standpoint and a development-process standpoint.

 On Thu, Apr 23, 2009 at 11:45 AM, hiro 23h...@googlemail.com wrote:
  Now we only need a working flash replacement:(

 no, flash is conceptually broken, it should not exist on the web

I agree with this;  nevertheless, command-line tools work fine for
grabbing flash video (and playing it with mplayer or xine).
Interactive flash is a nightmare that I'm happy to avoid.

  On Thu, Apr 23, 2009 at 5:21 PM, Dusan ef_...@yahoo.com wrote:
   Web kit minimal browser, you will find it very interesting.

 umm webkit was a 300 KLOC monster last time i checked

there isn't a non-crippled alternative, though -- not if you require
access to javascript- and css-enabled sites.  I use midori when I have
to, links otherwise.

# Kurt H Maier



Re: [dwm] dual-head and floats on all tags (and one feature request)

2009-04-23 Thread Jeremy Jay
Aw I was so close on the urgent patch, just missed the Arg ptr.
Here's a working version:

{ MODKEY, XK_u, focusurgent, {0} },

void
focusurgent(Arg *x) {
for(c = stack; c  !(c-isurgent); c = c-snext);
if(sel  sel != c) {
grabbuttons(sel, False);
XSetWindowBorder(dpy, sel-win, dc.norm[ColBorder]);
}
if(c) {
Arg a;
a.ui=c-tags;
view(a);
clearurgent(c);
detachstack(c);
attachstack(c);
grabbuttons(c, True);
XSetWindowBorder(dpy, c-win, dc.sel[ColBorder]);
XSetInputFocus(dpy, c-win, RevertToPointerRoot, CurrentTime);
}
else
XSetInputFocus(dpy, root, RevertToPointerRoot, CurrentTime);
sel = c;
drawbar();
}

On Thu 23 Apr 2009 - 10:10PM, Guillaume Quintin wrote:
 For the multihead, you can try my patch (even if it is not really the  
 same than having floating windows on the second screen)

 Basically, my patch stores all the informations on all detected monitors  
 in a table. There are two functions :

 win2mon : moves the selected client to the monitor number arg-i. The  
 client becomes floating, and visible on all tags (I find this useful but  
 you can remove it)

 win2main : moves the selected client back to the tag arg-ui and make it  
 tiled.

 It is up to you to configure your keys in your config.h.


 For the urgent hint patch I think that you can do the patch on your own,  
 I'll be interested in it. If I have time tomorrow I will give it a try  
 unless someone gives it before.

 -- 
 Kind regards
 Guillaume Quintin

 --- dwm.c.orig2009-04-18 13:49:24.0 +0200
 +++ dwm.c 2009-04-20 00:49:20.971772171 +0200
 @@ -127,6 +127,11 @@
   Bool isfloating;
  } Rule;
  
 +/* struct to store other monitors info */
 +typedef struct {
 + int wx,wy,ww,wh;
 +} Monitor;
 +
  /* function declarations */
  static void applyrules(Client *c);
  static Bool applysizehints(Client *c, int *x, int *y, int *w, int *h);
 @@ -203,6 +208,8 @@
  static int xerrordummy(Display *dpy, XErrorEvent *ee);
  static int xerrorstart(Display *dpy, XErrorEvent *ee);
  static void zoom(const Arg *arg);
 +void win2mon(const Arg *);
 +void win2main(const Arg *);
  
  /* variables */
  static char stext[256];
 @@ -210,6 +217,7 @@
  static int sx, sy, sw, sh; /* X display screen geometry x, y, width, height 
 */ 
  static int by, bh, blw;/* bar geometry y, height and layout symbol width 
 */
  static int wx, wy, ww, wh; /* window area geometry x, y, width, height, bar 
 excluded */
 +Monitor *monitors;int nb_mon; /* the other monitors */
  static unsigned int seltags = 0, sellt = 0;
  static int (*xerrorxlib)(Display *, XErrorEvent *);
  static unsigned int numlockmask = 0;
 @@ -1501,21 +1509,35 @@
   int n, i = 0;
   XineramaScreenInfo *info = NULL;
  
 + if ( monitors ) { free(monitors); }
 +
   /* window area geometry */
 - if(XineramaIsActive(dpy)  (info = XineramaQueryScreens(dpy, n))) { 
 - if(n  1) {
 - int di, x, y;
 - unsigned int dui;
 - Window dummy;
 - if(XQueryPointer(dpy, root, dummy, dummy, x, y, 
 di, di, dui))
 - for(i = 0; i  n; i++)
 - if(INRECT(x, y, info[i].x_org, 
 info[i].y_org, info[i].width, info[i].height))
 - break;
 + if(XineramaIsActive(dpy)  (info = XineramaQueryScreens(dpy, n)))
 + {
 + nb_mon = n - 1;
 + monitors = malloc(n * sizeof(Monitor));
 + if ( !monitors ) { die(Not enough memory for monitors' 
 informations.); }
 +
 + int di, x, y;
 + unsigned int dui;
 + Window dummy;
 + if(XQueryPointer(dpy, root, dummy, dummy, x, y, di, di, 
 dui))
 + {
 + for(i = 0; i  n; i++)
 + {
 + if(INRECT(x, y, info[i].x_org, info[i].y_org, 
 info[i].width, info[i].height))
 + {
 + wx = info[i].x_org;
 + wy = showbar  topbar ?  info[i].y_org 
 + bh : info[i].y_org;
 + ww = info[i].width;
 + wh = showbar ? info[i].height - bh : 
 info[i].height;
 + }
 + monitors[i].wx = info[i].x_org;
 + monitors[i].wy = info[i].y_org;
 + monitors[i].ww = info[i].width;
 + monitors[i].wh = info[i].height;
 + }
   }
 - wx = info[i].x_org;
 - wy = showbar  topbar ?  info[i].y_org + bh : info[i].y_org;
 -