Odpowiedzi:
Ta lista jest tworzona przez analizę plików .desktop znajdujących się w:
/usr/share/applications
~/.local/share/applications
Może być więcej niż jedna skrzynka na aplikację, na przykład odtwarzacz multimediów, banshee
który domyślnie ma trzy pliki .desktop:
$ ls -1 /usr/share/applications/banshee*
/usr/share/applications/banshee-1-audiocd.desktop
/usr/share/applications/banshee-1.desktop
/usr/share/applications/banshee-1-media-player.desktop
Jedyną różnicą między tymi plikami jest parametr początkowy i lista MimeType.
banshee-1.desktop
: Ogólne pliki multimedialnebanshee-1-audiocd.desktop
: Audio CDbanshee-1-media-player.desktop
Odtwarzacz audio (używany również przez rhythmbox
, vlc
i inne)Mamy więc trzy „Banshee Media Player” na liście „Otwórz za pomocą” (a może także w „Menu głównym”).
Innym sposobem wypełnienia tego miejsca jest utworzenie osobistych plików .desktop ~/.local/share/applications
. Ręcznie lub za pomocą narzędzia. alacarte
(lub kliknij prawym przyciskiem myszy „Menu główne” -> „Edytuj menu”) jest jednym z nich.
Za każdym razem, gdy tworzysz lub przenosisz aplikację alacarte
, nowy plik .desktop zostaje umieszczony w środku ~/.local/share/applications
. Wyłączenie aplikacji spowoduje „usunięcie” jej z „Menu głównego”, ale nie z listy „Otwórz za pomocą”.
Ale przycisk „Usuń” robi, tworząc identyczną kopię od /usr/share/applications
do ~/.local/share/applications
i dodanie Hidden=true
do pliku .desktop, a tym samym „nadpisywania” system-wide odziedziczone wartości.
Usunięcie dwóch z tych wpisów z alacarte
wyników powoduje:
$ ls -1 ~/.local/share/applications/banshee*
/home/user/.local/share/applications/banshee-1-audiocd.desktop
/home/user/.local/share/applications/banshee-1-media-player.desktop
Usunięcie wszystkich wpisów z ~/.local/share/applications
spowoduje powrót do wcześniejszego stanu (trzy banshee
elementy).
Jeśli tak naprawdę nie masz duplikatów w tych dwóch folderach, spróbuj usunąć wszelkie duplikaty z alacarte
gry w odpowiedniej Hidden=true
opcji .desktop lub baw się z nią.
Jeśli zajrzysz do środka ~/.local/share/applications
i /usr/share/applications
możesz usunąć duplikaty z tych dwóch miejsc. To mi zrobiło.
Uznając, że ten wątek jest stary, sam byłem zakłopotany tym problemem. Osobiście czułem, że usuwanie plików lub odtwarzanie „czyszczenia” było niepotrzebne, podobnie jak modyfikowanie rzeczy dla bieżącego użytkownika. Jeśli jest więcej niż 1 plik .desktop, czy każdy z nich nie może mieć unikalnego opisu? Jeśli chodzi o Linuksa, czy niektórzy twórcy aplikacji naprawdę przeoczyli takie proste rzeczy?
Odkryłem, że jeśli otworzysz pliki .desktop w edytorze tekstów, pole Nazwa wyświetla się w menu „Otwórz za pomocą”. Więc dla mnie szukałem plików .desktop, o których wiedziałem, że tworzą problem (na przykład 3 pliki Banshee). Patrząc na każdą z nich, różnica prawie zawsze miała związek z tym, jakie typy skrótów obsługuje. Wynika to z faktu, że niektóre programy wolą przekazywać różne parametry w zależności od rodzaju mimetalu. Tylko w jednym przypadku znalazłem zduplikowane wpisy w wyniku aktualizacji aplikacji, która nie usuwa starego pliku .desktop
Uzbrojony w to odkrycie, zmieniłem pola Nazwa znanych zduplikowanych wpisów, aby to odzwierciedlić. Na przykład, edytując plik .desktop, który Banshee ma specjalnie do obsługi płyt Audio CD , nazwa ta brzmiała następująco:
Banshee (Audio CD)
Rhythmbox jest również dobrym przykładem, ponieważ ma osobny plik .desktop specjalnie do obsługi płyt CD + odtwarzaczy MP3, ale każdy pokazuje to samo. Domyślam się, że plik 1 ładuje aplikację i kładzie nacisk na jednostkę, a nie bibliotekę. Warto więc zmienić nazwę, ponieważ nie chcesz, aby tak się stało podczas obsługi plików MP3 / OGG.
W każdym razie myślę, że dzięki temu menu Otwórz za pomocą wygląda czysto bez usuwania plików, które wydają się przydatne. To, czy zmiany te będą się powtarzać między aktualizacjami aplikacji, dopiero się okaże ... ale są to proste i szybkie zmiany, które można nawet napisać w skrypcie. W takim przypadku skorupa bardzo pomaga. Na przykład, aby zobaczyć wszystkie nazwy plików (ze ścieżką) z takimi zduplikowanymi wpisami:
grep -rl "^Name=Banshee$" /usr/share/applications
Gdzie „Banshee” jest oczywiście tym, co pojawia się więcej niż raz w menu Otwórz za pomocą. W podanym przykładzie do góry aplikacja nazywała się Geany.
Dzięki temu możesz wysłać powstałe pliki bezpośrednio do swojego edytora. Jeśli nie jesteś ekspertem w wyrażeniach reg, ^ i $ określają odpowiednio początek i koniec wiersza. Uniemożliwia to systemowi znalezienie takich linii, jak XGnome-FullName=Banshee Media Player
również Zapobiega znalezieniu pozycji, które mogły zostać już naprawione.
Możesz także zajrzeć do edytora menu „Aplikacje” Gnome i usunąć stąd duplikaty.
jhbuild.desktop
imimeapps.list
w ~ / .local / share / aplikacji . I nie ma duplikatów w / usr / share / applications , i nadal mam problem.