[xmonad] ManageHook and child windows

Raghavendra D Prabhu raghu.prabhu13 at gmail.com
Mon Jun 25 13:47:03 CEST 2012


* On Mon, Jun 25, 2012 at 04:43:23PM +0530, Raghavendra D Prabhu <raghu.prabhu13 at gmail.com> wrote:
>* On Sun, Jun 24, 2012 at 12:56:10PM -0400, adam vogt <vogt.adam at gmail.com> wrote:
>>On Sat, Jun 23, 2012 at 2:30 PM, Raghavendra D Prabhu
>><raghu.prabhu13 at gmail.com> wrote:
>>>I am using ManageHook to assign windows to workspaces; however, sometimes I
>>>tend to move the window to other workspace and after that happens, any
>>>dialog/child window  of this window appears in the original assigned
>>>workspace and not in the new workspace.
>>>Is there a way to fix / workaround this?
>>Hi Raghavendra,
>>If you run xprop on the dialog windows you find a property like:
>>WM_TRANSIENT_FOR(WINDOW): window id # 0x7c00006
>>If that's the case, you can use the transience' defined in
>>XMonad.Hooks.ManageHelpers, putting it as the left-most managehook
>>(that is,         manageHook = composeAll [ transience' , className =?
>>"a" --> doShift "b", ... ] )
>Thanks, I had tried transience before, albeit for a different purpose 
>I think, let me give it a shot again.
>>xmonad mailing list
>>xmonad at haskell.org

So, I tried it, it doesn't work for windows like the preferences 
window of firefox. The reason being that they don't have 
transient property in their xprop output.

However, I did notice  WM_CLIENT_LEADER on both windows pointing 
to same id (that of parent). Further searching lead me to http://tronche.com/gui/x/icccm/sec-5.html

All top-level, non-transient windows created by a client on the same display as the client leader must have a WM_CLIENT_LEADER property. This property contains a window ID that identifies the client leader window. The client leader window must have a WM_CLIENT_LEADER property containing its own window ID (i.e. the client leader window is pointing to itself). Transient windows need not have a WM_CLIENT_LEADER property if the client leader can be determined using the information in the WM_TRANSIENT_FOR property

Now, I checked the code and noticed a  getTransientForHint being 
used to check for this. Is there a way to add the above to it?

Raghavendra Prabhu
GPG Id : 0xD72BE977
Fingerprint: B93F EBCB 8E05 7039 CD3C A4B8 A616 DCA1 D72B E977
www: wnohang.net
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 490 bytes
Desc: not available
URL: <http://www.haskell.org/pipermail/xmonad/attachments/20120625/5049f5f3/attachment.pgp>

More information about the xmonad mailing list