To konkretny przykład ogólnego problemu, dla którego nie udało mi się znaleźć rozwiązania.
Mam program (Android Virtual Device Manager), który uruchamia „podprogramy” (mianowicie emulatory lub urządzenia wirtualne) od siebie (można je również uruchamiać gdzie indziej). Chcę, aby wszelkie instancje EITHER tych programów były zgrupowane pod tą samą ikoną Jedności.
Utworzyłem .desktop
plik, aby to osiągnąć, ale nie wiem, jak sobie z tym poradzić. Plik pulpitu wygląda następująco:
#!/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
Z tego, co rozumiem, StartupWMClass
muszę ustawić, aby osiągnąć to poprawnie. Otrzymałem dwie nazwy klas („Android Virtual Device Manager” i „emulator64-arm”), używając xprop WM_CLASS
w repsective windows. Oba działają osobno (ikona programu uruchamiającego jest poprawnie dołączona do programu bez względu na to, w jaki sposób jest uruchomiona), ale nie mogę sprawić, aby działał dla obu.
Zakładam, że muszę jakoś ustawić dwie wartości, StartupWMClass
ale nie byłem w stanie zrobić tego poprawnie (lub wiedzieć, czy jest to poprawna operacja). Próbowałem, oddzielić dwukropek jak zmienne środowiskowe, przecinek, cudzysłowy itp. I nie mogę znaleźć żadnych wskazówek w oficjalnej dokumentacji .
Jakieś sugestie?
EDYTOWAĆ:
Innym, bardziej pedantycznym, ale prawdopodobnie bardziej identyfikowalnym przykładem jest Matlab
. Używam 2013a i ekranu powitalnego, który początkowo pokazuje, a program ma zupełnie inne WM_CLASS
wartości. Oznacza to, że kiedy kliknę mój program uruchamiający StartupWMClass=com-mathworks-util-PostVMInit
w nim, na ekranie powitalnym pojawi się inna (domyślna Nieznana) Unity
ikona, podczas gdy reszta pojawi się zgrupowana pod moim programem uruchamiającym.
Używając xprop WMCLASS
i klikając najpierw ekran powitalny, a następnie powtarzając z aktywną Matlab
sesją, otrzymuję następujące dane wyjściowe terminala:
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"
Gdybym mógł podać coś w stylu:
StartupWMClass=com-mathworks-util-PostVMInit&&MATLAB
To działałoby idealnie (ponieważ oba działają osobno), ale nie mam pojęcia o składni, jeśli w ogóle istnieje. Po prostu wiem, że do tej pory nic nie działało.
Każda pomoc lub ostateczna odpowiedź w obu przypadkach byłaby świetna, ponieważ uważam, że jest to dość podstawowy element dobrze funkcjonującego pulpitu.
Drawers
w tym linku i z tego, co pokazują, po prostu grupuje linki, po kliknięciu dowolnego elementu podrzędnego, jest nadal tworzone z własną ikoną w programie Unity
uruchamiającym, co próbuję zatrzymać