22 декабря, 2022

PCManFM - очерёдность приложений в контекстном меню

Контекстное меню, появляющееся после щелчка ПКМ в PCManFM, формируется на основе следующих файлов:

1 ~/.config/mimeapps.list

2 ~/.local/share/applications/mimeapps.list - пользовательские переопределения
   ~/.local/share/applications/defaults.list - 
(устарел) пользовательские переопределения
   ~/.local/share/applications/mimeinfo.cache

3 /usr/local/share/applications/mimeapps.list - общесистемные переопределения
   /usr/local/share/applications/defaults.list - (устарел) 
общесистемные переопред.
   /usr/local/share/applications/mimeinfo.cache 

4 /usr/share/applications/defaults.list -- (устарел) общесистемные переопределения
   /usr/share/applications/mimeapps.list - общесистемные переопределения
   /usr/share/applications/mimeinfo.cache
  /etc/xdg/mimeapps.list
 - общесистемные переопределения

Приоритетность обхода директорий: сначала принимается во внимание 1, затем 2 и т.д.
То есть, в ~/.config/mimeapps.list в разделе "Added Associations" очерёдность десктоп-файлов определяет порядок (очерёдность) расположения приложений в контекстном меню. 
Если файловый менеджер не находит здесь приложение, то он продолжает обход файлов в порядке приоритетности.

Файл mimeinfo.cache генерируется update-desktop-database, которое парсит MIME-type десктоп-файлов, находящихся ~/.local/share/applications, /usr/local/share/applications и /usr/share/applications/. Порядок, представленный в этом файле, может изменяться после установки или удаления пакетов системы.

Некоторые приложения всё ещё используют файл ~/.local/share/applications/mimeapps.list несмотря на то, что он устарел.
Чтобы PCManFM перенаправлялся на 
~/.config/mimeapps.list , следует создать символическую ссылку на ~/.config/mimeapps.list:

$ ln -sf ~/.config/mimeapps.list ~/.local/share/applications/mimeapps.list
 Эта команда удаляет ~/.local/share/applications/mimeapps.list и создаёт вместо него ссылку на ~/.config/mimeapps.list

Примечание: В указанных выше директориях можно встретить файл defaults.list. Этот файл отображает только приложения по умолчанию (не добавленные/удалённые ассоциации). В настоящее время он устарел и его содержимое может быть вручную объединёно с mimeapps.list.


В mimeapps.list и mimeinfo.cache вы можете встретить разделы:

Added Associations - здесь представлены приложения, открывающие файлы указанного в разделе MIME-type. Это может повлиять на список приложений, который вы видите при щелчке правой кнопкой мыши по файлу в файловом менеджере.

Removed Associations - здесь представлены / можно задать приложения, которые не поддерживают / не будут поддерживать указанный MIME-type.

Default Applications - этот раздел определяет програму, которая запустится после щелчка ЛКМ по файлу или по пункту "Открыть" в контекстном меню (т.е. приложения по умолчанию для открытия указанного MIME-type). Если для данного MIME-type представлены несколько приложений, они проверяются по порядку. 
Если раздел Default Applications в mimeapps.list отсутствует, то система ищет его в defaults.list

В каждом разделе для определённого MIME-type может быть задано одно или несколько приложений. Ни один из разделов не является обязательным и может быть удалён. Или создан, если он отсутствует.

Чтобы узнать MIME-type файла. введите в терминале

$ file --mime-type /путь/к/имя_файла
или
$ file --mime /путь/к/имя_файла
или
xdg-mime query filetype /путь/к/имя_файла     (зачастую определяет более точно)

Как редактирование происходит на практике. 
Вы открываете /usr/share/applications/mimeinfo.cache, копируете строку, соответствующую интересующему вас MIME-type и переносите её ~/.config/mimeapps.list в раздел Added Associations. 
Затем в строке расставляете приложения в желаемом порядке, добавляете новые или удаляете ненужные. Сохраняете файл. Контекстное меню PCManFM изменяется. 
Если некое приложение после удаления из строки по-прежнему отображается в контекстном меню PCManFM, то следует внести его в раздел Removed Associations. В этом же файле в разделе Default Applications задаёте приложения по-умолчанию.



Статья написана (частично) на основе информации, представленной в:

Полезные ссылки: