XDG MIME Applications (Русский)

From ArchWiki
Jump to: navigation, search
Состояние перевода: На этой странице представлен перевод статьи XDG MIME Applications. Дата последней синхронизации: 25 апреля 2018. Вы можете помочь синхронизировать перевод, если в английской версии произошли изменения.

Спецификация от XDG для приложений MIME основывается на #Общей базе данных MIME и на #Ярлыках приложений для предоставления приложений по умолчанию.

Общая база данных MIME

Спецификация от XDG для общей база данных MIME-info облегчает общую базу данных MIME в среде рабочего стола и позволяет приложениям легко регистрировать новые типы MIME общесистемно.

База данных построена из файлов XML, установленных пакетами в /usr/share/mime/packages/, используя инструменты из shared-mime-info.

Файлы в /usr/share/mime/ не должны редактироваться напрямую, однако их можно сохранить в отдельную базу данных для каждого пользователя в ~/.local/share/mime/.

"Обработка схемы URI [..] обрабатывается через приложения, обрабатывающие x-scheme-handler/foo mime-type, где foo - это схема URI, о которой идет речь."[1]

Новый тип MIME

Tango-view-fullscreen.pngThis article or section needs expansion.Tango-view-fullscreen.png

Reason: Является ли процесс другим для назначения расширения существующего типа MIME? (Discuss in Talk:XDG MIME Applications (Русский)#)

В этом примере определяется новый тип MIME application/x-foobar и присваивается любому файлу с расширением .foo. Просто создайте следующий файл:

~/.local/share/mime/packages/application-x-foobar.xml
<?xml version="1.0" encoding="UTF-8"?>
<mime-info xmlns="http://www.freedesktop.org/standards/shared-mime-info">
    <mime-type type="application/x-foobar">
        <comment>foo file</comment>
        <icon name="application-x-foobar"/>
        <glob-deleteall/>
        <glob pattern="*.foo"/>
    </mime-type>
</mime-info>

А затем обновите базу данных MIME:

$ update-mime-database ~/.local/share/mime

Конечно, это никак не повлияет, если ярлыки приложения не связаны с типом MIME. Вам может потребоваться создать новые #Ярлыки приложений или отредактировать #mimeapps.list.

Ярлыки приложений

Каждый пакет может использовать ярлыки приложений для предоставления информации о типах MIME, которые могут быть обработаны с помощью программного обеспечения. Чтобы обеспечить быстрый поиск в обратном направлении, система использует инструменты из пакета desktop-file-utils для анализа файлов рабочего стола и создания обратного сопоставления, хранящегося в /usr/share/applications/mimeinfo.cache. Это единственный файл, который программы должны прочитать, чтобы найти все файлы рабочего стола, которые могут использоваться для обработки данного типа MIME. Использование базы данных проще и быстрее, чем непосредственно считывать сотни файлов .desktop.

Файлы в /usr/share/applications/ не должны редактироваться напрямую, можно поддерживать отдельную базу данных для каждого пользователя в ~/.local/share/applications/. Для получения дополнительной информации смотрите статью Ярлыки приложений.

mimeapps.list

Стандарт XDG является наиболее распространенным при настройке окружения рабочего стола. Приложения по умолчанию для каждого типа MIME хранятся в файлах mimeapps.list, которые могут храниться в нескольких местах. Их проверяют в следующем порядке, причем более ранние ассоциации имеют приоритет над более поздними:

Путь Применение
~/.config/mimeapps.list пользовательские переопределения
/etc/xdg/mimeapps.list общесистемные переопределения
~/.local/share/applications/mimeapps.list (Устаревшее) пользовательские переопределения
/usr/local/share/applications/mimeapps.list
/usr/share/applications/mimeapps.list
переопределения предоставляемые дистрибутивом по умолчанию

Кроме того, можно определить окружение рабочего стола по умолчанию для конкретных приложений в файле с именем desktop-mimeapps.list где desktop это имя окружения рабочего стола (Из переменной окружения XDG_CURRENT_DESKTOP). Например, /etc/xdg/xfce-mimeapps.list определяет общесистемные переопределения приложений по умолчанию для Xfce. Эти переопределения для рабочего стола имеют приоритет над соответствующим файлом, не относящимся к окружению рабочему столу. Например, /etc/xdg/xfce-mimeapps.list имеет приоритет над /etc/xdg/mimeapps.list, но по-прежнему переопределяется ~/.config/mimeapps.list.

Совет: Несмотря на то, что несколько устаревших приложений все еще читают/записывают в ~/.local/share/applications/mimeapps.list. Чтобы облегчить обслуживание, просто соедините его ссылкой
$ ln -s ~/.config/mimeapps.list ~/.local/share/applications/mimeapps.list
. Обратите внимание, что символическая ссылка должна быть по этому пути, потому что xdg-utils удаляет и воссоздает ~/.config/mimeapps.list при записи в него, что приведет к поломке любых символических/жестких ссылок.
Примечание: Вы также можете найти файлы в этих местах с именем defaults.list. Этот файл похож на mimeapps.list, за исключением того, что он отображает только приложения по умолчанию (не добавленные/удаленные ассоциации). Сейчас он устарел и должен быть вручную объединен с mimeapps.list.

Формат

Рассмотрим следующий пример:

mimeapps.list
[Added Associations]
image/jpeg=bar.desktop;baz.desktop
video/H264=bar.desktop
[Removed Associations]
video/H264=baz.desktop
[Default Applications]
image/jpeg=foo.desktop

Каждый раздел назначает один или несколько ярлыков приложений типам MIME.

  • Added Associations (Добавленные ассоциации) указывают, что приложения поддерживают открытие этого типа MIME. Например, bar.desktop и baz.desktop могут открывать изображения JPEG. Это может повлиять на список приложений, который вы видите при щелчке правой кнопкой мыши по файлу в файловом менеджере.
  • Removed Associations (Удаленные ассоциации) указывают, что приложения не поддерживают этот тип MIME. Например, baz.desktop не может открыть видео H.264.
  • Default Applications (Приложения по умолчанию) указывают, что приложения должны выбираться по умолчанию для открытия этого типа MIME. Например, изображения JPEG должны быть открыты с помощью foo.desktop. Это неявно добавляет связь между приложением и типом MIME. Если есть несколько приложений, они проверяются по порядку.

Каждый раздел является необязательным и может быть опущен, если он не нужен.

Утилиты

Хотя можно настроить приложения по умолчанию и типы MIME путем прямого редактирования #mimeapps.list[broken link: invalid section] и #Shared MIME database[broken link: invalid section], существует множество инструментов, которые могут упростить процесс. Эти инструменты также важны, поскольку приложения могут делегировать открытие файлов этими инструментами, а не пытаться реализовать стандарт типа MIME.

Если вы используете окружение рабочего стола, вы должны сначала проверить, предоставляет ли он свою собственную утилиту. Она должна быть предпочтительнее этих альтернатив.

Официальные утилиты xdg-utils содержат инструменты для управления типами MIME и приложениями по умолчанию в соответствии со стандартом XDG (xdg-mime). Самое главное, что он предоставляет xdg-open, который многие приложения используют для открытия файла с его приложением по умолчанию.

lsdesktopf

lsdesktopfAUR предоставляет несколько способов поиска в базе данных MIME и ярлыков MIME на рабочем столе.

Например, чтобы увидеть все расширения MIME в файлах .desktop в системе, которые имеют тип MIME video, вы можете использовать lsdesktopf --gm -gx video или для поиска в файлах базы данных XML, используйте lsdesktopf --gdx -gx video. Чтобы получить краткий обзор того, сколько и какие файлы .desktop могут быть связаны с определенным типом MIME, используйте lsdesktopf --gen-mimeapps. Чтобы просмотреть все расширения имен файлов в файлах базы данных XML, используйте lsdesktopf --gdx -gfx.

Решение проблем

Если файл не открывается вашим желаемым приложением по умолчанию, существует несколько возможных причин. Вам может потребоваться проверить каждый случай.

Отсутствует ярлык приложения

Для связывания приложений с типами MIME требуются ярлыки приложений. Убедитесь, что такая запись существует и может использоваться для открытия (вручную) файлов в приложении.

Отсутствует ассоциация

Если в ярлыке приложения не указан тип MIME под его ключом MimeType, он не будет учитываться, когда приложение необходимо для открытия этого типа. Измените #mimeapps.list, чтобы добавить связь между файлом .desktop и типом MIME.

Нет приложения по умолчанию

Если ярлык приложения связан с типом MIME, его просто нельзя установить как значение по умолчанию. Измените #mimeapps.list[broken link: invalid section], чтобы установить связь по умолчанию.

Нестандартная ассоциация

Приложения могут игнорировать или частично реализовывать стандарт XDG. Проверьте использование устаревших файлов, таких как ~/.local/share/applications/mimeapps.list и ~/.local/share/applications/defaults.list. Если вы пытаетесь открыть файл из другого приложения (например, веб-браузера или файлового менеджера), проверьте, имеет ли это приложение собственный способ выбора приложений по умолчанию.

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

Tango-view-fullscreen.pngThis article or section needs expansion.Tango-view-fullscreen.png

Reason: Тот факт, что записи MimeType могут отсутствовать в файлах рабочего стола, только подразумевается здесь, т. е. "Даже если приложение...", хотя это есть общая причина ошибок. Некоторые приложения для открывания файлов могут также ассоциировать типы mime, явно не перечисленные в файле рабочего стола (такие как, exo). Большую роль играют дополнительные факторы, специфичные для окружающей среды, например, Terminal=true имеет последствия, хотя его следует, возможно, расширить в Ярлыки приложений. (Discuss in Talk:XDG MIME Applications (Русский)#)

Окружения рабочего стола и файловые менеджеры, поддерживающие программы запуска спецификаций в соответствии с определением в файлах .desktop. Смотрите раздел Ярлыки приложений#Ярлык приложения.

Как правило, настройка упакованных файлов .desktop не требуется, но она может быть с ошибками. Даже если приложение содержит необходимое описание типа MIME в файле .desktop, то иногда переменная MimeType, которая используется для ассоциации, может неправильно запускаться или вообще не запускаться, или запускаться без открытия файла.

Это может произойти, например, если в переменной Exec отсутствуют внутренние параметры, необходимые для открытия файла или того, как приложение отображается в меню. Переменная Exec обычно начинается с %; чтобы узнать поддерживаемые параметры в настоящее время смотрите exec-переменные.

В следующей таблице перечислены основные записи переменных файлов .desktop которые влияют на запуск приложения, если у него есть тип MIME, связанный с ним.

Имена переменных Пример 1 Пример 2 Описание
DBusActivatable DBusActivatable=true DBusActivatable=false Приложение взаимодействует с D-Bus.
Смотрите также настройки: D-Bus.
MimeType MimeType=application/vnd.oasis.opendocument.text MimeType=application/vnd.sun.xml.math Список типов MIME, поддерживаемых приложением
StartupWMClass StartupWMClass=google-chrome StartupWMClass=xpad Связывает окна с владельцем приложения
Terminal Terminal=true Terminal=false Запуск в терминале по умолчанию