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