Comment 30 for bug 635223

Revision history for this message
Jason Smith (jassmith) wrote :

BAMF goes through 3 layers of matching before falling back to a "failure" state where no .desktop file is associated. The layers in short are:

1) A gio module which directly informs bamf which PID is launched with which .desktop file
2) wm-class <-> desktop_id association
3) heuristics (sloppy)

In the case of wine it uses 3 or 4 layers of indirection on launch, so the gio module rarely works because the final running pid does not match the pid the .desktop file launchers. The wm_class of all wine applications is handidly "Wine" making them difficult to distinguish from one another and their running executable strings are usually less than helpful.

There is however a way forward.

Wine seems to set the name of the exe in an xproperty on the window. Using a search of known .desktop files exec lines, the correct (or at least the usually correct assuming not too many programs are installed) .desktop file could be picked out. This would give a better image, savability on the launcher, and generally proper behavior in Unity.

Workload wise this is more of a testing issue than a coding issue. I can ensure songbird works today, but a small list of 10 or so wine apps (and maybe a dude to help test) that are considered "common" would be awesome.

Summary:
Coding is not a problem. Special casing will ensure this does not effect existing applications. Workload is primarily in the testing phase.