Как удалить дублирующиеся записи в, 'Открывают With' диалог Наутилуса?

Linux (как другие нельды) исходно не обеспечивает функцию отмены. Философия - то, что, если это пошло, это пошло. Если это было важно, это должно было быть сохранено.

Существует файловая система предохранителя, которая автоматически сохраняет копии старых версий: copyfs, доступный во всех хороших дистрибутивах. Конечно, это может использовать много ресурсов.

Лучший способ защитить от таких несчастных случаев состоит в том, чтобы использовать систему управления версиями (cvs, базар, darcs, мерзавец, подвижный, подверсия...). Требуется немного времени для изучения, но это окупается удивительно в среднесрочном и долгосрочном.

14
08.05.2012, 11:37
6 ответов

Этот список создается путем анализа .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: Аудиокомпакт-диск
  • banshee-1-media-player.desktop Аудиоплеер (Также используемый rhythmbox, vlc, и другие)

Таким образом, у нас есть три 'Банши Media Player' в 'Открытый с' списком (и возможно также в 'Главном меню').

Другой способ заполнить это пространство путем создания персональных .desktop файлов в ~/.local/share/applications. Или вручную или при помощи инструмента. alacarte (или щелкните правой кнопкой по 'Main Menu'-> 'Edit Menu'), один из тех.

Каждый раз Вы создаете или перемещаете приложение в alacarte, новый .desktop файл помещается внутри ~/.local/share/applications. Отключение приложения "удалит" его из 'Главного меню', но не из 'Открытый с' списком.
Но кнопка 'Delete' делает путем создания идентичной копии с /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 файлах.

9
27.01.2020, 19:51

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

7
27.01.2020, 19:51
  • 1
    , которое я только имею jhbuild.desktop и mimeapps.list в ~/.local/share/applications. И, в/usr/share/applications нет никаких простофиль, и я все еще испытываю проблему. –  tshepang 17.12.2010, 11:21

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

0
27.01.2020, 19:51

Можно также посмотреть в редакторе меню "Приложений" Gnome и удалить дубликаты отсюда.

0
27.01.2020, 19:51
  • 1
    Вы когда-либо видели дубликаты там? –  tshepang 15.12.2010, 19:33
  • 2
    Да. Некоторые приложения создают дубликаты, который кажется в "открытым с" диалоговым окном как geany для Вас, и я могу удалить их отсюда путем редактирования меню Applications гнома (в котором они присутствуют, но скрыты, таким образом, Вы не видите их, просто просмотрев меню, только в редакторе). –  gentledevil 08.02.2011, 13:34

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

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

очищенный эта путаница для меня.

2
27.01.2020, 19:51

Подтверждение этого потока старо, я был озадачен этой проблемой сам. Я лично чувствовал удаление файлов, или проигрывание "очистки" было ненужным, как просто настраивал вещи для текущего пользователя. Если существует больше чем 1 .desktop файл, разве у каждого не может быть уникального описания? Насколько Linux появился, определенные разработчики приложения действительно пропустили простые вещи как это?

Я нашел, открываете ли Вы .desktop файлы в текстовом редакторе, Поле имени что дисплеи в меню "Open With". Таким образом для меня, я искал .desktop файлы, которые я знал, создавали проблему (например, 3 файла Банши). Смотря на каждого, различие почти всегда имело отношение, какой mimetypes ярлык обрабатывает. Это вызвано тем, что некоторые программы предпочитают передавать различные параметры в зависимости от mimetype. Только в 1 экземпляре сделал я нахожу дублирующиеся записи результатом обновления приложений, не моющегося, это - старый .desktop файл

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

Банши (аудиокомпакт-диск)

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

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

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

Где "Банши", конечно, что обнаруживается несколько раз в открытом меню With. В примере, обеспеченном вершина, приложение назвали Geany.

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

1
27.01.2020, 19:51

Теги

Похожие вопросы