Mime Policy
Материал из ALT Linux Wiki
(→Поддержка форматов файлов) |
(→Поддержка форматов файлов) |
||
Строка 31: | Строка 31: | ||
!параметр||значение | !параметр||значение | ||
|- | |- | ||
- | |%U|| несколько аргументов, | + | |%U|| может быть несколько аргументов, путь к файлу или URL, например file:/usr/ |
|- | |- | ||
- | |%u|| один аргумент, путь к файлу или URL | + | |%u|| может быть только один аргумент, путь к файлу или URL |
|- | |- | ||
- | |%F|| несколько аргументов, пути к файлам | + | |%F|| может быть несколько аргументов, пути к файлам |
|- | |- | ||
- | |%f|| один аргумент, путь к файлу | + | |%f|| может быть только один аргумент, путь к файлу |
|} | |} | ||
=== Замечания === | === Замечания === | ||
- | * .desktop файл приложения также используется для показа приложения в меню. Однако иногда для обработки MIME-типа необходимо вызвать приложение со специальными опциями, либо же приложение не предназначено для показа в меню (например, не создает окна при простом запуске). В таком случае удобно разделить роль пункта меню и роль обработчика MIME-типов на разные .desktop файлы. В те .desktop файлы, которые не предназначены для меню и используются только как обработчики, нужно добавить | + | * .desktop файл приложения также используется для показа приложения в меню. Однако иногда для обработки MIME-типа необходимо вызвать приложение со специальными опциями, либо же приложение не предназначено для показа в меню (например, не создает окна при простом запуске). В таком случае удобно разделить роль пункта меню и роль обработчика MIME-типов на разные .desktop файлы. В те .desktop файлы, которые не предназначены для меню и используются только как обработчики, нужно добавить (см. [http://standards.freedesktop.org/menu-spec/menu-spec-latest.html menu-spec]) |
NoDisplay=true | NoDisplay=true | ||
* проверить, поддерживает ли приложение аргументы типа URL, можно, заменив путь к файлу на URL вида file:/path/. | * проверить, поддерживает ли приложение аргументы типа URL, можно, заменив путь к файлу на URL вида file:/path/. | ||
=== Пример === | === Пример === | ||
- | + | Хотим добавить приложение oqtplayer из пакета {{pkg|openquicktime-utils}} как обработчик *.MOV файлов | |
- | video/quicktime | + | (MIME-тип video/quicktime). Для этого достаточно создать {{path|/usr/share/applications/oqtplayer.desktop}} |
- | oqtplayer | + | [Desktop Entry] |
- | + | Type=Application | |
- | + | Name=oqtplayer (console) | |
+ | GenericName=Multimedia player (console) | ||
+ | Comment=Play quicktime movies and songs (console) | ||
+ | Icon=multimedia_section.png | ||
+ | Exec=oqtplayer %f | ||
+ | Terminal=false | ||
+ | NoDisplay=true | ||
+ | MimeType=video/quicktime; | ||
== Поддержка протоколов == | == Поддержка протоколов == |
Версия 20:45, 13 августа 2011
Содержание |
Общие сведения
Internet media type ранее называемый MIME type (Multipurpose Internet Mail Extensions) является стандвртом наиманования различных типов файлов. MIME идентификатор состоит из двух частей: основного типа и подтипа, разделенных косой чертой. Узнать MIME идентификатор файла можно командой xdg-mime:
xdg-mime query filetype article1.tex text/x-tex
Поддержка форматов файлов
Ранее каждый файловый менеджер имел свои собственные несовместимые настройки для запуска приложений при открытии файлов определенного типа. С появлением стандарта freedesktop.org эти настройки вынесены из приложений в отдельные базы данных. стандарты freedesktop.org поддерживаются GNOME с 2.2x, KDE, начиная с 4.x, XFCE, ...
По стандарту настройки для запуска приложений при открытии файлов определенного типа формируются следующим образом:
- С помощью базы данных MIME-типов из пакета shared-mime-info определяется MIME-тип файла, например, video/mp4. Приложения могу т расширять базу данных MIME-типов, например, игра может определить собственный MIME-тип для формата карт местности, чтобы связать этот MIME-тип с редактором карт. Подробнее см. http://standards.freedesktop.org/shared-mime-info-spec/shared-mime-info-spec-latest.html
- Приложения, способные обрабатывать данные, указывают MIME-типы этих данных в ключе MimeType=... .desktop файла соответствующего приложения. При этом они также должны указать в ключе Exec=... один из параметров %U, %u, %F, %f, описывающий тип принимаемого аргумента. Подробнее см. http://standards.freedesktop.org/desktop-entry-spec/desktop-entry-spec-latest.html
- Приложение (Файловый менеджер) с помощью shared-mime-info определяет MIME-тип файла, читает из базы данных .desktop файлов список приложений, могущих обработать данный MIME-тип. Обычно этот список можно увидеть в контекстном меню файла в подпункте "Открыть с помощью".
параметр | значение |
---|---|
%U | может быть несколько аргументов, путь к файлу или URL, например file:/usr/ |
%u | может быть только один аргумент, путь к файлу или URL |
%F | может быть несколько аргументов, пути к файлам |
%f | может быть только один аргумент, путь к файлу |
Замечания
- .desktop файл приложения также используется для показа приложения в меню. Однако иногда для обработки MIME-типа необходимо вызвать приложение со специальными опциями, либо же приложение не предназначено для показа в меню (например, не создает окна при простом запуске). В таком случае удобно разделить роль пункта меню и роль обработчика MIME-типов на разные .desktop файлы. В те .desktop файлы, которые не предназначены для меню и используются только как обработчики, нужно добавить (см. menu-spec)
NoDisplay=true
- проверить, поддерживает ли приложение аргументы типа URL, можно, заменив путь к файлу на URL вида file:/path/.
Пример
Хотим добавить приложение oqtplayer из пакета openquicktime-utils как обработчик *.MOV файлов (MIME-тип video/quicktime). Для этого достаточно создать /usr/share/applications/oqtplayer.desktop
[Desktop Entry] Type=Application Name=oqtplayer (console) GenericName=Multimedia player (console) Comment=Play quicktime movies and songs (console) Icon=multimedia_section.png Exec=oqtplayer %f Terminal=false NoDisplay=true MimeType=video/quicktime;
Поддержка протоколов
Почтовые клиенты
Почтовый клиент должен поддерживать протокол mailto:. Это можно проверить, запустив почтовый клиент с командной строки:
$ mailprogram протокол:test@altlinux.org
Если протокол mailto: поддерживается приложением, в его .desktop файл следует добавить
MimeType=x-scheme-handler/mailto;
Файловые менеджеры
freedesktop-совместимый файловый менеджер должен поддерживать протоколы computer: trash: network: и mime-тип inode/directory (каталог). Это можно проверить, посмотрев, обрабатываются ли эти протоколы как аргументы командной строки:
$ filemanager computer: $ filemanager trash: $ filemanager network:
для каждого поддерживаемого протокола нужно добавить в ключ MimeType .desktop файла mime-тип "обработчик протокола", соответственно
x-scheme-handler/computer x-scheme-handler/trash x-scheme-handler/network
таким образом, рекомендуемый вид для filemanager.desktop
... Exec=filemanager %U MimeType=x-scheme-handler/computer;x-scheme-handler/trash;x-scheme-handler/network;inode/directory;
Приоритет приложений
TODO