[xmonad] ManageHook and child windows

Pablo Olmos de Aguilera C. pablo at glatelier.org
Sun Jul 8 00:25:07 CEST 2012


On 25 June 2012 07:47, Raghavendra D Prabhu <raghu.prabhu13 at gmail.com> wrote:
> Hi,
>
>
>
> * On Mon, Jun 25, 2012 at 04:43:23PM +0530, Raghavendra D Prabhu
> <raghu.prabhu13 at gmail.com> wrote:
>>
>> Hi,
>>
>>
>> * 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:
>>>>
>>>> Hi,
>>>>
>>>> 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", ... ] )
>>>
>>>
>>> http://xmonad.org/xmonad-docs/xmonad-contrib/XMonad-Hooks-ManageHelpers.html
>>>
>>> Adam
>>>
>>> _______________________________________________
>>
>>
>> Thanks, I had tried transience before, albeit for a different purpose I
>> think, let me give it a shot again.
>>
>> Thanks.
>>
>>> xmonad mailing list
>>> xmonad at haskell.org
>>> http://www.haskell.org/mailman/listinfo/xmonad
>>
>>
>>
>>
>>
>
> 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?
>
>
>
>
>
>
>
> Regards,

Did you have success? I'm having the same problem... each time firefox
spawn a window it appears in a fixed workspace (which is not always
the same that I'm using it), also most of them are dialogs, but they
tend to tile themselvs which is umconfortable.

I was looking to the function you mentioned (getTransientForHint), but
I don't know where it is. I see it being called two times in
X.H.ManageHelpers and XMonad (Operation.hs), but I still don't
understand where to look.

Saludos,
-- 
Pablo Olmos de Aguilera Corradini - @PaBLoX
http://www.glatelier.org/
http://about.me/pablox/
http://www.linkedin.com/in/pablooda/
Linux User: #456971 - http://counter.li.org/



More information about the xmonad mailing list