Mam problem z kilkoma programami, które mają programy uruchamiające w jedności, ale po uruchomieniu tworzą osobną ikonę. Czy program uruchamiający może śledzić okna, które spawnuje, aby lepiej zorganizować? Czy jest to błąd w samej Unity?
To może nie mieć znaczenia, ale ten konkretny program jest programem mono, a ikona spawn jest wyświetlana jako panel.
StartupWMClass
właściwość w programie uruchamiającym pulpit aplikacji: askubuntu.com/questions/36434/…Odpowiedzi:
Co się dzieje
Takie problemy dotyczą struktury dopasowywania aplikacji Unity. Aby uprościć szczegóły techniczne, okna programu i aplikacje to dwie osobne rzeczy dla Ubuntu. Ubuntu musi odgadnąć, która aplikacja ma określone okno. Czasami ta próba kończy się niepowodzeniem, aw programie uruchamiającym pojawia się znak zapytania.
Awaria może być spowodowana:
Aplikacja pokazana w pytaniu (KeePass2) ma problem typu 1, który został zgłoszony do odpowiedniego narzędzia do śledzenia błędów .
Przykłady problemów
Poniższe przykłady mają charakter techniczny i są przeznaczone dla programistów, którzy chcą, aby ich aplikacja wyświetlała się poprawnie w programie uruchamiającym Ubuntu.
Problem 3 - Brak opisu aplikacji
Aby aplikacja mogła się zintegrować z Unity - to znaczy, że można ją przeszukiwać w Dash i umieszczać w programie uruchamiającym - musi mieć pozycję na pulpicie. Takie wpisy są umieszczone w
/usr/share/applications/
,/usr/local/share/applications/
i$HOME/.local/share/applications/
(te dwa ostatnie są dla oprogramowania osób trzecich, w całym systemie, a użytkownik tylko odpowiednio). Kończą się.desktop
rozszerzeniem i mają ten podstawowy format:Ten wpis uruchamia program przez wywołanie
Exec
pliku wykonywalnego. Ilekroć ten program wyświetla okno lub okno dialogowe, Unity zauważy, że jego plik wykonywalny „należy” do tego opisu aplikacji i używa podanegoName
orazIcon
w programie uruchamiającym.To jest prosty przykład. Formalna specyfikacja obejmuje wiele zaawansowanych funkcji.
Problem 2 - błędny opis aplikacji
Załóżmy, że
my_app.desktop
istnieje on w prawidłowym katalogu aplikacji, ale:/file/path/of/my/icon
nie istnieje w systemie plików./file/path/of/my/icon
nie jest obrazem.W każdym z powyższych przypadków Ubuntu nie będzie w stanie poprawnie wyświetlić okna aplikacji w programie uruchamiającym.
Problem 1 - Błąd w BAMF
Począwszy od Ubuntu 11.10, BAMF ma wiele błędów, które uniemożliwiają prawidłowe dopasowanie aplikacji. Typowe (tymczasowe) pułapki obejmują:
Exec
Ścieżka bycia dowiązania symbolicznego zamiast zwykłego plikuW takich przypadkach programiści nie mają innej opcji, jak tylko zastosować obejście, takie jak usunięcie symbolicznej abstrakcji łącza lub bezpośrednie połączenie z plikiem wykonywalnym. Żaden z nich nie jest wymagany przez samą specyfikację pozycji pulpitu.
źródło
.desktop
pliki dla tej samej aplikacji zarówno w, jak~/.local/share/applications/
i/usr/share/applications/
. Pierwszy plik zastępuje drugi, nawet jeśli nie określono w nim ikony.Okno można dopasować do aplikacji tylko wtedy, gdy ustawiono właściwość WM_CLASS. Aby to zrobić w X11, używasz:
Musisz przekazać wskaźnik do struktury XClassHint z polami „res_name” i „res_class”.
źródło
Miałem kilka problemów z 16.04, w tym wyszarzone ikony, a czasami touchpad stał się nieregularny (Acer V15 nitro), a także centrum oprogramowania (może także inne ikony) nie otwierało się z ikony (tylko z polecenia terminalu). Znalazłem zalecenie, aby odinstalować i ponownie zainstalować oprogramowanie gnome. Odkąd to zrobiłem, cały system jest w 100% stabilny, nie ma już szarych ikon i działa idealnie. Początkowo wyglądało to przerażająco, kiedy zrestartowałem się po tej zmianie - wiele komunikatów systemowych przy ponownym uruchomieniu - więc zrób to na własne ryzyko.
źródło