Как удалить повторяющиеся записи в диалоге «Открыть с помощью» Nautilus?

14

Было бы неплохо показать волшебную кнопку, которая поможет мне удалить это бельмо на глазу:

альтернативный текст

Это Nautilus 2.30 на Debian (и был там в предыдущих версиях, насколько я помню).

tshepang
источник

Ответы:

9

Этот список создается путем анализа файлов .desktop, расположенных по адресу:

/usr/share/applications
~/.local/share/applications

В каждом приложении может быть несколько вариантов использования, например, медиаплеер, bansheeкоторый по умолчанию имеет три файла .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

Единственная разница между этими файлами - это начальный параметр и список MimeType.

  • banshee-1.desktop: Общие медиафайлы
  • banshee-1-audiocd.desktop: Аудио CD
  • banshee-1-media-player.desktopАудио плеер (также используется rhythmbox, vlcи другие)

Итак, у нас есть три «Banshee Media Player» в списке «Открыть с помощью» (и, возможно, также в «Главном меню»).

Другой способ заполнить это пространство - создать личные файлы .desktop в ~/.local/share/applications. Либо вручную, либо с помощью инструмента. alacarte(или щелкните правой кнопкой мыши на «Главное меню» -> «Редактировать меню») является одним из них.

Каждый раз, когда вы создаете или перемещаете приложение alacarte, в него помещается новый файл .desktop ~/.local/share/applications. Отключение приложения «удалит» его из «Главного меню», но не из списка «Открыть с помощью».
Но кнопка «Удалить» делает это, создавая идентичную копию /usr/share/applicationsв ~/.local/share/applicationsи добавляя Hidden=trueв файл .desktop, тем самым «перезаписывая» общесистемные унаследованные значения.

Удаление двух из этих записей из alacarteрезультатов в:

$ 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

Удаление любых записей ~/.local/share/applicationsвернется к существующему состоянию (три bansheeэлемента).

Если у вас действительно нет дубликатов в этих двух папках, попробуйте удалить любые дубликаты alacarteили играть с Hidden=trueопцией в соответствующих файлах .desktop.

шутник
источник
7

Если вы заглянете внутрь ~/.local/share/applicationsи /usr/share/applicationsсможете удалить дубликаты из этих двух мест. Это сделало это для меня.

Стив Бурдин
источник
Обратите внимание, что у меня есть только jhbuild.desktopи mimeapps.listв ~ / .local / share / Applications . И в / usr / share / Applications нет дупликов , и я все еще испытываю проблему.
Чепанг
2

Я знаю, что эта тема старая, но для многих это вызвано вином.

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

убрал этот беспорядок для меня.

Joelol75
источник
1

Признавая, что эта ветка старая, я сама была озадачена этой проблемой. Лично я чувствовал, что удалять файлы или играть в «чистку» не нужно, так как просто настраиваю вещи для текущего пользователя. Если существует более 1 файла .desktop, не может ли каждый иметь уникальное описание? Что касается Linux, разве некоторые разработчики приложений действительно упускают из виду такие простые вещи?

Я обнаружил, что если вы открываете файлы .desktop в текстовом редакторе, поле « Имя» - это то, что отображается в меню «Открыть с помощью». Поэтому я искал файлы .desktop, которые, как я знал, создавали проблему (например, 3 файла Banshee). Глядя на каждый из них, разница почти всегда была связана с тем, с какими типами мимтипа работает ярлык. Это связано с тем, что некоторые программы предпочитают передавать разные параметры в зависимости от mimetype. Только в 1 случае я нашел дубликаты записей в результате обновления приложения, которое не очищает его старый файл .desktop.

Вооружившись этим открытием, я изменил поля Name известных дублированных записей, чтобы отразить это. Например, редактируя файл .desktop, который Banshee имеет специально для обработки аудио компакт-дисков , я сделал название следующим образом:

Банши (Аудио CD)

Rhythmbox также является хорошим примером, поскольку у него есть отдельный файл .desktop, специально предназначенный для работы с CD + MP3-плеерами, но каждый из них показывает то же самое. Я предполагаю, что файл 1 загружает приложение и фокусируется на устройстве, а не на вашей библиотеке. Это стоит переименовать, так как вы не хотите, чтобы это происходило при обработке файлов MP3 / OGG.

В любом случае, я думаю, что это делает меню Open With чистым, не удаляя файлы, которые кажутся полезными. Сохраняются ли эти изменения между обновлениями приложения, еще неизвестно ... но это простое и быстрое редактирование, которое можно даже записать в сценарии. Оболочка очень помогает в этом случае. Например, чтобы увидеть все имена файлов (с путем) с такими повторяющимися записями:

grep -rl "^Name=Banshee$" /usr/share/applications

Где «Banshee» - это то, что более одного раза появляется в меню «Открыть с помощью». В приведенном выше примере приложение называлось Geany.

Благодаря этому вы можете отправить полученные файлы прямо в ваш редактор. Если вы не являетесь экспертом в выражениях reg, символы ^ и $ указывают начало и конец строки соответственно. Это удерживает систему от поиска строк, таких как, XGnome-FullName=Banshee Media Player а также предотвращает поиск записей, которые вы, возможно, уже исправили.

Джейсон Леонард
источник
0

Вроде как выстрел в темноте, но вы пытались нажать на одну из записей и нажать кнопку «Удалить», как показано на скриншоте? Если это удалит все записи, вы можете просто добавить его заново.

jonescb
источник
0

Вы также можете посмотреть в редакторе меню Gnome «Applications» и удалить дубликаты отсюда.

gentledevil
источник
Вы когда-нибудь видели дубликаты там?
Чепанг
Да. Некоторые приложения создают дубликаты, которые появляются в диалоговом окне «Открыть с помощью», например geany, и я могу удалить их отсюда, отредактировав меню «Приложения» gnome (в котором они присутствуют, но скрыты, поэтому вы не видите их, просто просматривая меню, только в редакторе).
gentledevil