Добрый день!
Один раз я сталкивался с регистрацией mime-типа при установке deb-пакета. В принципе, ето довольно легко. Создал /usr/share/mime/packages/xxx.xml с примерно таким описанием:
потом /usr/share/applications/xxx.desktop с таким:
[Desktop Entry]
Version=0.2
Name=Japanese crosswords
Name[ru_RU]=Японские кроссворды
Comment=Crossword graphical game for linux
Comment[ru]=Игра для решения и создания японских кроссвордов
Exec=jcws
Icon=/usr/share/pixmaps/jcws.png
Terminal=false
Type=Application
Categories=Game;
MimeType=image/x-jcws;
и файлы с расширением .jcw зарегистрированы за классом image/x-jcws и открываются программой jcws
Вчера скачал жене программку FBReader для чтения електронных книг. На оф. сайте есть только одна версия deb-пакета и она для Debian Etch. Несмотря на то, что прога-та запустилась, несколько вещей в структуре deb-пакета меня не устроило и я решил его немного переделать. В частности, не было никакой поддержки открытия файлов fb2. Стал я по вышеописанным файлам составлять mime-тип. Сначала вышло так:
/usr/share/applications/fbreader.desktop:
[Desktop Entry]
Name=E-book reader
Name[ru]=Чтение электронных книг
GenericName=E-book reader
GenericName[ru]=Чтение электронных книг
Comment=FBReader E-book reader
Comment[ru]=FBReader, программа для чтения электронных книг
TryExec=fbreader
Exec=fbreader %F
StartupNotify=true
Terminal=false
Type=Application
Icon=/usr/share/pixmaps/fbreader.png
Categories=Office;Viewer;Literature;
MimeType=application/x-fbreader;
/usr/share/mime/packages/fbreader.xml:
Ничего из етого не вышло. Практически новая и ничем не запятнанная система открывала файлы fb2 Firefox'ом.
Гугл открыл мне страшную тайну, что fb2 должен регистрировать тип application/x-fictionbook и некоторые даже пробовали ето сделать, но темы форумов обрываются то-ли от безысходности, то-ли из-за какого-нть полтергейста.
В системе я к своему удивлению обнаружил уже зарегистрированные fb2-расширения в файлах /usr/share/mime/glob и /usr/share/mime/glob2, причём сразу на два класса: application/x-fictionbook и application/x-fictionbook+xml. Да и при етом на чистой системе описан только второй mime-тип, а на компе, который за два года чем только не оброс, нашлись оба типа. При попытке установить файл deb, который регистрировал тип application/x-fictionbook я удивился щё больше:
~$ cat /usr/share/mime/globs | grep fictionbook
application/x-fictionbook:*.fb2
application/x-fictionbook+xml:*.fb2
application/x-fictionbook:*.fb2
А ведь сначала казалось, тип должен был поменять открывающую программу, но не как ни дублировать себя.
На той системе, которой два года удалось решить проблему несколько раз меняя тип в deb-пакете с application/x-fictionbook на application/x-fictionbook+xml и обратно. А так, тут он открывался gedit'ом.
Не прошу помоч конкретно с fb2-типом, но подскажите, есть ли возможность поменять программу, которая исполняется при открытии файла с определённым mime-типом? Причём, организовать так, чтобы ето делал deb-пакет и обязательно на глобальном уровне, а не в ~/.local/share
Пользователь решил продолжить мысль 20 Января 2012, 22:16:50:
ЗЫ. Попробовал вручную в свойствах fb2-файла прописать открывающую программу на закладке "Открывать в программе" программу fbreader. Результат появился в ~/.local/share/applications/mimeapps.list:
[Added Associations]
application/x-fictionbook+xml=fbreader.desktop;firefox.desktop;gedit.desktop;openoffice.org-writer.desktop;
Вот только как бы ето теперь описать глобально? Искал /usr/share файл mimeapps.list - не нашёл.
ЗЫЫ. Извиняюсь, что так много написал, но на гугле уже забанили, а голова медленно, но верно отказывается работать