I was recently hunting down a slightly annoying usability bug in
Khweeteur, a Twitter / identi.ca client: Khweeteur can notify the user
when there are new status updates, however, it wasn't overlaying the
notification window on the application window, like the email client
does. I spent some time investigating the problem: the fix is easy,
but non-obvious, so I'm recording it here.

Ouch! It appears that a program's WM_CLASS is set to the name of its
"binary". In this case, /usr/bin/khweeteur was just a dispatcher that
executes the right command depending on the arguments. When starting
the frontend, it was running a Python interpreter. Adjusting the
dispatcher to not exec fixed the problem: