Я пытаюсь выполнить копию прежней версии Firefox вместе с последним самым большим Firefox. Это хорошо работает, у меня есть два средства запуска как так в моем .local/share/applications
папка:
[Desktop Entry]
Encoding=UTF-8
Type=Application
Name=Firefox 29
Icon=custom.png
Exec=/usr/local/firefox-29/firefox --no-remote -P "Firefox 29"
StartupNotify=false
и
[Desktop Entry]
Encoding=UTF-8
Type=Application
Name=Firefox Trunk
Icon=firefox.png
Exec=/usr/local/firefox-trunk/firefox %u -P Trunk --no-remote
StartupNotify=false
Это работает, но после того, как я запускаю эти два браузера, они заканчивают тем, что совместно использовали новый значок.
Я нашел директиву средства запуска названной StartupWMClass
, и попробованное создание их не соответствовать друг другу..., но... оказывается, что оба приложения имеют тот же самый WMClass:
$ 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", "Firefox"
Существует ли способ указать WMClass для приложения?
Вы не можете указать WMClass
для Firefox 29, но Вы можете для более новых версий с помощью --class=Something
параметр командной строки.
, Таким образом, я скорректировал магистральное средство запуска Firefox как так:
[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
... и добавил StartupWMClass=Firefox
для средства запуска Firefox 29, и теперь когда я работаю 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!
Поэтому теперь средства запуска каждая работа как ожидалось, с их окнами, подключенными к корректному средству запуска и никакому новому фантомному средству запуска, создается.