Jump to content

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

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

Ссылки по теме

- Ярлыки приложений
- Окружение рабочего стола
- Оконный менеджер
- Приложения по умолчанию
- xdg-utils (Русский)

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

1. Программы описывают поддерживаемые MIME-типы, используя ярлыки приложений.
2. Пакет desktop-file-utils регистрирует хук pacman для построения базы данных с кешем поддерживаемых MIME-типов на основе ярлыков приложений, см. update-desktop-database(1).
3. Приложения могут устанавливать MIME-типы, добавляя XML-файлы в `/usr/share/mime/packages/`.
4. Пакет shared-mime-info регистрирует хук pacman для построения общей базы данных с кешем MIME-типов, см. update-mime-database(1).
5. Среды рабочего стола и пользователи могут изменять приложения по умолчанию и добавлять или удалять MIME-типы приложений, используя файлы mimeapps.list.

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

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

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

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

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

### Новый тип MIME

This article or section needs expansion.

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.

## 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` несмотря на то, что он устарел. Чтобы облегчить задачу, просто создайте символическую ссылку на `~/.config/mimeapps.list`:

    $ ln -s ~/.config/mimeapps.list ~/.local/share/applications/mimeapps.list

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

Также возможно получить список файлов, в которых происходит поиск MIME-типов, включив режим отладки с помощью переменной окружения XDG_UTILS_DEBUG_LEVEL=2 и выполнив, к примеру, команду `xdg-mime query default <тип>`.

### Формат

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

    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 и общей базы данных MIME, существует множество инструментов, которые упрощают данный процесс. Эти инструменты также важны, поскольку приложения могут делегировать открытие файлов этим инструментам, а не пытаться реализовать стандарт 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`.

### selectdefaultapplication

selectdefaultapplication-gitAUR — это графическое приложение, которое показывает список всех приложений, поддерживающие различные MIME-типы, и позволяет быстро установить их по умолчанию для всех или некоторых MIME-типов (путём изменения `mimeapps.list`).

Оно также показывает «читаемое» имя и расширения файлов, так что вам не нужно запоминать названия MIME-типов.

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

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

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

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

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

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

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

Если ярлык приложения связан с типом MIME, возможно, он просто не установлен по умолчанию. Измените mimeapps.list, чтобы задать связь по умолчанию.

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

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

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

This article or section needs expansion.

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

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

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

Это может произойти, например, если в переменной `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 | Запуск в терминале по умолчанию

Category:

- Freedesktop.org (Русский)

Hidden category:

- Pages or sections flagged with Template:Expansion

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