Це конкретний приклад загальної проблеми, для якої я ще не змогла знайти рішення.
У мене є програма (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" і "емулятор64-рука"), використовуючи 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
запуску, на чому я намагаюся зупинити