Você não pode especificar o WMClass
para o Firefox 29, mas é possível para versões mais recentes usando o argumento de linha de comando --class=Something
.
Então eu ajustei o lançador de troncos do firefox assim:
[Desktop Entry]
Encoding=UTF-8
Type=Application
Name=Firefox Trunk
Icon=firefox.png
Exec=/usr/local/firefox-trunk/firefox %u -P Trunk --no-remote --class=FirefoxTrunk
StartupNotify=false
StartupWMClass=FirefoxTrunk
... e adicionei StartupWMClass=Firefox
para o launcher do Firefox 29, e agora quando eu executo xprop WM_CLASS
...
$ xprop WM_CLASS # then click on FF 29
WM_CLASS(STRING) = "Navigator", "Firefox"
$ xprop WM_CLASS # then click on FF trunk
WM_CLASS(STRING) = "Navigator", "FirefoxTrunk"
Yay!
Então, agora, os lançadores funcionam como esperado, com suas janelas anexadas ao lançador correto, e nenhum novo lançador fantasma é criado.