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

Состояние перевода:
На этой странице представлен перевод статьи
XDG MIME Applications
. Дата последней синхронизации: 9 апреля 2022. Вы можете
помочь
синхронизировать перевод, если в английской версии произошли
изменения
.
Ссылки по теме
Ярлыки приложений
Окружение рабочего стола
Оконный менеджер
Приложения по умолчанию
xdg-utils (Русский)
Спецификация XDG для приложений MIME
основывается на
общей базе данных MIME
и
ярлыках приложений
для предоставления
приложений по умолчанию
.
Программы описывают поддерживаемые MIME-типы, используя
ярлыки приложений
.
Пакет
desktop-file-utils
регистрирует
хук pacman
для построения базы данных с кешем поддерживаемых MIME-типов на основе ярлыков приложений, см.
update-desktop-database(1)
.
Приложения могут устанавливать MIME-типы, добавляя XML-файлы в
/usr/share/mime/packages/
.
Пакет
shared-mime-info
регистрирует
хук pacman
для построения общей базы данных с кешем MIME-типов, см.
update-mime-database(1)
.
Среды рабочего стола
и пользователи могут изменять приложения по умолчанию и добавлять или удалять 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
lsdesktopf
AUR
предоставляет несколько способов поиска в базе данных 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-git
AUR
— это графическое приложение, которое показывает список всех приложений, поддерживающие различные 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
Запуск в терминале по умолчанию