XMonad 0.10 only matches on last className?

If I run xprop on my emacs I see this: WM_CLASS(STRING) = "emacs", "Emacs23" If I setup a keybinding to runOrRaise looking for "emacs", it always starts a new instance: , ((modMask, xK_w), runOrRaiseNext editor (className =? "emacs")) If I change it to match on Emacs23, then I get the expected runOrRaise behavior: , ((modMask, xK_w), runOrRaiseNext editor (className =? "Emacs23")) Is this a bug, or is there a different syntax I'm supposed to use for when I want to match on any of the WM_CLASS's that the window has specified?

On Sat, Sep 22, 2012 at 11:25 AM, Joseph Garvin
If I run xprop on my emacs I see this:
WM_CLASS(STRING) = "emacs", "Emacs23"
You might want to read X11 documentation. WM_CLASS is always a two-element list; the first string is appName aka resource name, and the second is className. This has been true since X11R4 introduced WM_CLASS. xmonad has used them this way since at least 0.2. -- brandon s allbery allbery.b@gmail.com wandering unix systems administrator (available) (412) 475-9364 vm/sms

On Sat, Sep 22, 2012 at 10:30 AM, Brandon Allbery
On Sat, Sep 22, 2012 at 11:25 AM, Joseph Garvin
wrote: If I run xprop on my emacs I see this:
WM_CLASS(STRING) = "emacs", "Emacs23"
You might want to read X11 documentation. WM_CLASS is always a two-element list; the first string is appName aka resource name, and the second is className. This has been true since X11R4 introduced WM_CLASS.
Ah, that makes sense. I must have gotten lucky with apps being named the same as their class in the past, it always seemed to be matching against any of the strings in there for me (I've never known the actual purpose of WM_CLASS, I just learned to run xprop to find it for matching years ago back when I used Sawfish instead of xmonad).
xmonad has used them this way since at least 0.2.
The upgrade to xmonad 0.10 was due to Ubuntu upgrade, so emacs changing it's WM_CLASS is what actually cause the breakage. Thanks, Joe G.
participants (2)
-
Brandon Allbery
-
Joseph Garvin