Это конкретный пример общей проблемы, решение которой я пока не смог найти.
У меня есть программа (Android Virtual Device Manager), которая запускает «подпрограммы» (а именно эмуляторы или виртуальные устройства) изнутри себя (также может быть запущена из другого места). Я хочу, чтобы все экземпляры этих программ были сгруппированы под одним и тем же значком Unity.
Я создал .desktop
файл, чтобы попытаться выполнить это, но точно не знаю, как это сделать. Файл рабочего стола выглядит следующим образом:
#!/usr/bin/env xdg-open
[Desktop Entry]
Version=1.0
Type=Application
Terminal=false
Name=Android Virtual Device
Icon=/home/ben/.icons/android.svg
Exec=/home/ben/usr/bin/android avd
StartupWMClass=Android Virtual Device Manager
Из того, что я понимаю, StartupWMClass
это то , что мне нужно установить, чтобы добиться этого правильно. Я получил два имени класса ('Android Virtual Device Manager' и 'emulator64-arm'), использующих xprop WM_CLASS
в репозитивных окнах. Оба работают по отдельности (значок программы запуска правильно прикреплен к программе, независимо от того, каким образом она запускается), но я не могу заставить ее работать для обоих.
Я предполагаю, что мне как-то нужно установить два значения для, StartupWMClass
но я не смог сделать это правильно (или знаю, является ли это допустимой операцией). Я пробовал, двоеточие разделяли как переменные окружения, запятую, кавычки и т. Д., И я не могу найти никаких подсказок в официальной документации .
Какие-либо предложения?
РЕДАКТИРОВАТЬ:
Другой, более педантичный, но, вероятно, более узнаваемый пример Matlab
. Я запускаю 2013a и заставку, которая первоначально показывает, и программа имеет совершенно разные WM_CLASS
значения. Это означает, что когда я щелкаю по своей панели запуска, StartupWMClass=com-mathworks-util-PostVMInit
на ней появляется заставка с другим Unity
значком (по умолчанию Неизвестно) , в то время как остальные отображаются сгруппированы под моей панелью запуска.
Используя xprop WMCLASS
и сначала нажимая на заставку, затем повторяя активную Matlab
сессию, я получаю следующий вывод терминала:
ben@ben-OptiPlex-9010:~$ xprop WM_CLASS
WM_CLASS(STRING) = "MATLAB", "MATLAB"
ben@ben-OptiPlex-9010:~$ xprop WM_CLASS
WM_CLASS(STRING) = "sun-awt-X11-XFramePeer", "com-mathworks-util-PostVMInit"
Если бы я мог указать что-то вроде:
StartupWMClass=com-mathworks-util-PostVMInit&&MATLAB
Это будет работать идеально (так как оба работают по отдельности), но я понятия не имею о синтаксисе, если он вообще существует. Я просто знаю, что ничего, что я пробовал, до сих пор не работало
Любая помощь или точный ответ в любом случае были бы великолепны, так как я считаю, что это довольно важный элемент хорошо функционирующего рабочего стола.
Drawers
этой ссылке и по тому, что они показывают, он просто группирует ссылки, когда вы щелкаете по любому подпункту, он все еще создается со своим собственным значком в Unity
панели запуска, который я пытаюсь остановить