Jak usunąć duplikaty wpisów w oknie dialogowym Nautilus „Otwórz za pomocą”?

14

Byłoby miło pokazać magiczny przycisk, który pomoże mi usunąć ten ból oczu:

alternatywny tekst

Nautilus 2.30 na Debianie (o ile pamiętam, był dostępny w poprzednich wersjach).

tshepang
źródło

Odpowiedzi:

9

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, bansheektó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 multimedialne
  • banshee-1-audiocd.desktop: Audio CD
  • banshee-1-media-player.desktopOdtwarzacz audio (używany również przez rhythmbox, vlci 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/applicationsdo ~/.local/share/applicationsi dodanie Hidden=truedo pliku .desktop, a tym samym „nadpisywania” system-wide odziedziczone wartości.

Usunięcie dwóch z tych wpisów z alacartewynikó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/applicationsspowoduje powrót do wcześniejszego stanu (trzy bansheeelementy).

Jeśli tak naprawdę nie masz duplikatów w tych dwóch folderach, spróbuj usunąć wszelkie duplikaty z alacartegry w odpowiedniej Hidden=trueopcji .desktop lub baw się z nią.

machać
źródło
7

Jeśli zajrzysz do środka ~/.local/share/applicationsi /usr/share/applicationsmożesz usunąć duplikaty z tych dwóch miejsc. To mi zrobiło.

Steve Burdine
źródło
Zauważ, że mam tylko jhbuild.desktopi mimeapps.listw ~ / .local / share / aplikacji . I nie ma duplikatów w / usr / share / applications , i nadal mam problem.
tshepang,
2

Wiem, że ten wątek jest stary, ale dla wielu jest to spowodowane winem.

rm ~/.local/share/applications/wine-extension*

posprzątałem ten bałagan dla mnie.

Joelol75
źródło
1

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.

Jason Leonard
źródło
0

Niby strzał w ciemność, ale czy próbowałeś kliknąć jeden z wpisów i kliknąć przycisk Usuń, jak widać na zrzucie ekranu? Jeśli spowoduje to usunięcie wszystkich wpisów, możesz po prostu dodać go ponownie.

jonescb
źródło
0

Możesz także zajrzeć do edytora menu „Aplikacje” Gnome i usunąć stąd duplikaty.

gentledevil
źródło
Czy kiedykolwiek widziałeś tam duplikaty?
tshepang,
Tak. Niektóre aplikacje tworzą duplikaty, które pojawiają się w oknie dialogowym „otwórz za pomocą”, takie jak geany, i mogę je stąd usunąć, edytując menu aplikacji gnome (w którym są obecne, ale ukryte, więc nie widać ich, przeglądając tylko menu, tylko w edytorze).
gentledevil