6

Я знаю, что каждая программа, которая может открывать файлы, имеет запись на рабочем столе в /usr/share/applications , и что значения по умолчанию для каждого mimetype хранятся в /usr/share/applications/defaults.list и ~/.local/share/applications/mimeapps.list . В моей системе команда, которая обновляет эти списки, является update-mime-database . Тем не менее, я не смог найти ответ на Google о том, как эта программа решает, какое приложение становится по умолчанию, если установлено несколько приложений, которые могут обрабатывать этот файл. Я спрашиваю, потому что, когда я недавно установил Geany в своей системе, все файлы исходного кода начали открываться в Geany, а не в моем обычном текстовом редакторе, и мне было интересно, как был сделан выбор заменить мой обычный редактор на Geany. Кроме того, я знаю, что могу вручную изменить каждый файл обратно в свой обычный редактор, но есть ли способ назначить определенной программе по умолчанию все типы файлов, которые она может открывать? По сути, как менеджер приложений Windows по умолчанию, где вы можете видеть все типы файлов, которые может открыть любая программа, и выбирать или отменять их выборку.

Я также знаю утилиту xdg-mime , но мне кажется, что она не выбирает между несколькими возможными программами для открытия файла или для перерегистрации по умолчанию всех типов файлов для определенной программы.

1 ответ1

3

Во-первых, Linux (операционная система) ничего не выбирает в том, что вы описываете (поэтому заголовок скорее нет), это либо приложение, по которому вы щелкаете файл, либо среда рабочего стола, которая делает выбор на основе логика и информация.

Вы упомянули update-mime-database, которая приводит к Gnome с некоторым поиском, и эту страницу специально:

https://developer.gnome.org/shared-mime-info-spec/ (которая является лишь точной копией этого: http://standards.freedesktop.org/shared-mime-info-spec/shared-mime-info -spec-latest.html)

Каждое приложение, которое желает внести свой вклад в базу данных MIME, установит один файл XML, названный в честь приложения, в один из трех каталогов /packages / (в зависимости от того, где пользователь запросил установку приложения). После установки, удаления или изменения этого файла приложение ДОЛЖНО выполнить команду update-mime-database, которая предоставляется общей базой данных freedesktop.org.

update-mime-database передается каталог mime, содержащий подкаталог пакетов, который был изменен в качестве единственного аргумента. Он сканирует все файлы XML в подкаталоге пакетов, объединяет информацию в них и создает ряд выходных файлов.

А вот и гоча:

Если информация из этих файлов противоречива, информация из каталогов, расположенных ниже в списке, имеет приоритет. Любой файл с именем Override.xml имеет приоритет над всеми другими файлами в том же каталоге пакетов. Это может использоваться инструментами, которые позволяют пользователю редактировать базу данных, чтобы изменения вступили в силу.

Так что, может быть, из-за того, что Geany просто оказался "ниже в списке", он имеет приоритет. Ниже здесь может означать что угодно, от алфавитного упорядочения соответствующих файлов до упорядочения в некотором предопределенном списке приложений.

На этой странице также описывается формат файлов, а также упоминается, что могут быть доступны дополнительные инструменты для работы с базой данных (в частности, Override.xml). Что касается того, существуют ли такие инструменты, возможно, стоит другой вопрос.

Изменить: Этот ответ об использовании mimeopen может также оказаться полезным для вас, даже если он может не относиться к выбранному вами файловому менеджеру:https://superuser.com/a/573488/243625

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .