Mime Policy

Материал из ALT Linux Wiki

(Различия между версиями)
Перейти к: навигация, поиск
(Поддержка форматов файлов)
(Поддержка форматов файлов)
Строка 31: Строка 31:
!параметр||значение
!параметр||значение
|-
|-
-
|%U|| несколько аргументов, может быть путь к файлу или URL, например file:/usr/
+
|%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
-
http://standards.freedesktop.org/menu-spec/menu-spec-latest.html
+
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

Stub.png
Черновик политики Sisyphus
Автор(ы) — viy@


Содержание

Общие сведения

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, ...

По стандарту настройки для запуска приложений при открытии файлов определенного типа формируются следующим образом:

  1. С помощью базы данных MIME-типов из пакета shared-mime-info определяется MIME-тип файла, например, video/mp4. Приложения могу т расширять базу данных MIME-типов, например, игра может определить собственный MIME-тип для формата карт местности, чтобы связать этот MIME-тип с редактором карт. Подробнее см. http://standards.freedesktop.org/shared-mime-info-spec/shared-mime-info-spec-latest.html
  2. Приложения, способные обрабатывать данные, указывают MIME-типы этих данных в ключе MimeType=... .desktop файла соответствующего приложения. При этом они также должны указать в ключе Exec=... один из параметров %U, %u, %F, %f, описывающий тип принимаемого аргумента. Подробнее см. http://standards.freedesktop.org/desktop-entry-spec/desktop-entry-spec-latest.html
  3. Приложение (Файловый менеджер) с помощью 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

Ресурсы

Desktop Entry Specification

 
Личные инструменты