2009/9/15 Alexey Feigin <mysteriousentity@gmail.com>
2009/9/15 Alexey Feigin <mysteriousentity@gmail.com>

Hi,

I would like to manage some windows depending on their title (WM_Nανε). I wrote a manage hook but it doesn't seem to be working (ie, the action is not performed).

Matching by className and resource seems to work, but not by title.

myManageHook = composeAll . concat $
š š[ [ fmap ("Gvim" š š šš `isInfixOf`) className --> doFloat ] š-- Works
š š, [ fmap ("gvim" š š šš `isInfixOf`) resource š--> doFloat ] š-- Works
š š, [ fmap ("journal.txt" `isInfixOf`) title š š --> doFloat ] š-- Does not work
š š]

I also tried to use
(stringProperty "WM_NAME")

Any ideas?

I'm running xmonad with GNOME on Ubuntu.

Thanks in advance :)

Alexey

I looked at the source of ManageHook and saw thatštitle actually takes _NET_WM_NAME if it exists. In the case of the gvim window I want to detect, this property is in UTF8. Could that be why it's not matching up? And if so, what can I do about it?

Alexey

I write my own version ofštitle based on that of ManageHook's. This one doesn't check _NET_WM_NAME but just goes for WM_NAME straight away.

---
myTitle :: Query String
myTitle = ask >>= \w -> liftX $ do
š š d <- asks display
š šlet
š š š šgetProp = getTextProperty d w wM_NAME
š š š šextract = fmap head . wcTextPropertyToTextList d
š šio $ bracket getProp (xFree . tp_value) extract `catch` \_ -> return ""
---

Still doesn't work.

Alexey