[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?
>>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?
GPG Id : 0xD72BE977
Fingerprint: B93F EBCB 8E05 7039 CD3C A4B8 A616 DCA1 D72B E977
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Size: 490 bytes
Desc: not available
More information about the xmonad