Risposte:
Questo elenco viene creato analizzando i file .desktop situati in:
/usr/share/applications
~/.local/share/applications
Potrebbe esserci più di un caso d'uso per applicazione, ad esempio il lettore multimediale banshee
che ha tre file .desktop per impostazione predefinita:
$ 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
L'unica differenza tra questi file è il parametro iniziale e l'elenco MimeType.
banshee-1.desktop
: File multimediali generalibanshee-1-audiocd.desktop
: CD audiobanshee-1-media-player.desktop
Lettore audio (utilizzato anche da rhythmbox
, vlc
, e altri)Quindi abbiamo tre "Banshee Media Player" nell'elenco "Apri con" (e forse anche nel "Menu principale").
L'altro modo di riempire questo spazio è creare file .desktop personali in ~/.local/share/applications
. O manualmente o utilizzando uno strumento. alacarte
(o fare clic con il tasto destro su 'Menu principale' -> 'Modifica menu') è uno di quelli.
Ogni volta che crei o sposti un'applicazione all'interno alacarte
, viene inserito un nuovo file .desktop ~/.local/share/applications
. La disabilitazione di un'applicazione la "rimuoverà" dal "Menu principale", ma non dall'elenco "Apri con".
Ma il pulsante 'Elimina' lo fa, creando una copia identica da /usr/share/applications
dentro ~/.local/share/applications
e aggiungendoHidden=true
al file .desktop, "sovrascrivendo" quindi i valori ereditati a livello di sistema.
L'eliminazione di due di queste voci dai alacarte
risultati in:
$ 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
La rimozione di qualsiasi voce ~/.local/share/applications
verrà ripristinata allo stato preesistente (trebanshee
voci).
Se davvero non hai duplicati in quelle due cartelle, prova a rimuovere alacarte
o riprodurre i duplicati con l' Hidden=true
opzione nei file .desktop corrispondenti.
Se guardi dentro ~/.local/share/applications
e /usr/share/applications
puoi rimuovere i duplicati da quei due posti. Che ha fatto per me.
Riconoscendo che questa discussione è vecchia, sono rimasto perplesso da questo problema. Personalmente ho ritenuto che eliminare i file o riprodurre "cleanup" non fosse necessario, così come lo era solo modificare le cose per l'utente corrente. Se esiste più di 1 file .desktop, ognuno non può avere una descrizione univoca? Per quanto riguarda Linux, alcuni sviluppatori di app hanno davvero trascurato cose semplici come questa?
Ho scoperto che se apri i file .desktop in un editor di testo, il campo Nome è ciò che viene visualizzato nel menu "Apri con". Quindi, per me, ho cercato i file .desktop che sapevo stessero creando il problema (ad esempio, i 3 file Banshee). Osservando ognuno di essi, la differenza ha quasi sempre a che fare con i mimetipi che la scorciatoia sta gestendo. Questo perché alcuni programmi preferiscono passare parametri diversi a seconda del mimetipo. Solo in 1 caso ho trovato voci duplicate il risultato di un aggiornamento dell'applicazione che non cancella il suo vecchio file .desktop
Grazie a quella scoperta, ho modificato i campi Nome delle voci duplicate conosciute per riflettere questo. Ad esempio, modificando il file .desktop che Banshee deve specificamente gestire i CD audio , ho fatto il nome letto come tale:
Banshee (CD audio)
Rhythmbox è anche un buon esempio, in quanto ha un file .desktop separato specifico per la gestione di lettori CD + MP3, ma ognuno si presenta allo stesso modo. La mia ipotesi è che il file 1 carica l'applicazione e mette a fuoco l'unità piuttosto che la tua libreria. Vale la pena rinominare, quindi, poiché non si vorrebbe che ciò accadesse durante la gestione dei file MP3 / OGG.
Ad ogni modo, penso che questo renda pulito il menu Apri con senza solo eliminare i file che sembrano essere utili. Se questi cambiamenti persistono o meno tra gli aggiornamenti dell'applicazione è ancora da vedere ... ma si tratta di modifiche semplici e veloci che potrebbero persino essere scritte. Il guscio aiuta enormemente in quel caso. Ad esempio, per vedere tutti i nomi di file (con percorso) con tali voci duplicate:
grep -rl "^Name=Banshee$" /usr/share/applications
Dove "Banshee" è ovviamente ciò che appare più di una volta nel menu Apri con. Nell'esempio fornito in alto, l'app si chiamava Geany.
Con questo, puoi inviare i file risultanti direttamente al tuo editor. Se non sei un esperto di espressioni reg, ^ e $ specificano rispettivamente l'inizio e la fine della riga. Ciò impedisce al sistema di trovare linee come XGnome-FullName=Banshee Media Player
Evita anche di trovare voci che potresti aver già corretto.
Puoi anche consultare l'editor di menu "Applicazioni" di Gnome e rimuovere i duplicati da qui.
jhbuild.desktop
emimeapps.list
in ~ / .local / share / applicazioni . E non ci sono duplicati in / usr / share / applicazioni e sto ancora riscontrando il problema.