Dlaczego mój niestandardowy program uruchamiający otwiera się pod osobną ikoną?

12

Utworzyłem niestandardowy plik uruchamiający:

[Desktop Entry]
Type=Application
Name=P4V
Comment=Perforce Visual Client
Icon=/usr/lib/p4v/P4VResources/icons/P4-V_128x128.png
Exec=/usr/bin/p4v
Terminal=false
Categories=Development;

Przeciągnąłem ten plik do mojego programu uruchamiającego. Jednak po kliknięciu ikony otwiera aplikację pod drugą, inną ikoną (klikam górną, otwiera aplikację pod dolną):

ikony programu uruchamiającego

Dolna ikona nie jest widoczna, dopóki nie uruchomię aplikacji przy użyciu górnej ikony P4v, którą ręcznie dodałem.

cytat
źródło
1
Czy to jest aplikacja Java?
dobey,
/ usr / bin / pv4 to skrypt, który najwyraźniej otwiera twoją aplikację w jakiś sposób, który sam jest powiązany z ikoną. Prawdopodobnie javascript - perforce.com/product/components/perforce-visual-client
doug
1
@doug nie, jest to aplikacja z oknem i „normalnym” .desktopplikiem (w tym ustawioną ikoną) w /usr/share/applications(zainstalowałem go, żeby się dowiedzieć).
Jacob Vlijm,

Odpowiedzi:

10

Jeśli aplikacja wyświetla drugą ikonę, to nie jest ogólna

Jeśli aplikacja generuje drugą ikonę w programie uruchamiającym Unity inną niż szara, ogólna ikona, musi istnieć (inna) istniejąca aplikacja uruchamiająca, wywołująca p4vpolecenie główne:

Plik aplikacji z .desktopdefinicji ma polecenie „główne” w pierwszym wierszu, zaczynając od Exec=. Jest to polecenie uruchamiane po kliknięciu ikony w programie Unityuruchamiającym ( ). Oprócz tego .desktopplik może mieć jedną lub więcej sekcji skrótów, dostępnych po kliknięciu prawym przyciskiem myszy reprezentującej ikony w programie Unityuruchamiającym.

Wiele plików .desktop wywołujących tę samą aplikację w głównym poleceniu

Do symptomów może się zdarzyć, gdy więcej niż jeden .desktopplik w jednej /usr/share/applicationslub ~/.local/share/applicationsmają takie same ( „utrzy-”) polecenie w swojej pierwszej Exec= linii, ale pliki są inaczej nazwane.

P4v domyślnie należy zainstalować (i prawdopodobnie został zainstalowany) do .desktoppliku o nazwie p4vasp.desktopw /usr/share/applications.

Jak naprawić
Twój problem powinien zostać rozwiązany, jeśli usuniesz własny (prawdopodobnie lokalny) .desktopplik, a następnie uruchomisz p4vDash i przypisz go do programu uruchamiającego.

Co zrobić, jeśli chcesz dostosować istniejący program uruchamiający?

Jeśli chcesz zmienić zachowanie .desktoppliku lub np. Jego ikonę:

  • skopiuj plik z /usr/share/applicationsdo~/.local/share/applications
  • nie zmieniaj nazwy pliku
  • otwórz plik w gedit(przeciągnij go nad otwarte geditokno) i wprowadź zmiany, które chcesz
  • wyloguj się i zaloguj ponownie, lokalna wersja .desktoppliku zastąpi globalną.

Aby przywrócić, wystarczy usunąć lokalny, wylogować się i ponownie zalogować.

Powiązane z tym postem

Jacob Vlijm
źródło
Ta odpowiedź jest równie dobra w Ubuntu 18.04 z GNOME 3
Todd
0

Rozwiązanie, które działało na mnie w Ubuntu 18.04, gdy miałem problem z dodaniem AppImage do moich ulubionych. To rozwiązanie zostało podsumowane na stronie https://beamtic.com/duplicated-icons-in-launcher

  1. Uzyskaj klasę okna swojego programu z podwójną ikoną, wykonując

    xprop WM_CLASS
    
  2. Wybierz okno główne tego programu, klikając go. Otrzymałem dwa ciągi i właśnie wziąłem pierwszy (mała litera).

  3. Dodaj następujący wiersz do .desktoppliku (miałem mój .desktopplik w ~/.local/share/applications) i zamień [Name_of_Window_Class]na dane wyjściowe polecenia xprop:

    StartupWMClass=[Name_of_Window_Class]
    
  4. Uruchom / uruchom ponownie aplikację, gotowe!

Axelfoley
źródło