#linux #associations #mime-types
#linux #ассоциации #mime-типы
Вопрос:
Файлы MAFF — это просто zip-файлы. Я пытаюсь создать обработчик для .maff в Linux, чтобы, когда я нажимаю на них или набираю xdg-open x.maff, он вызывал мой обработчик вместо того, чтобы по умолчанию открывать каталог в nautilus. Я создал application-x-maff.xml файл, содержащий:
<?xml version="1.0" encoding="UTF-8"?>
<mime-info xmlns="http://www.freedesktop.org/standards/shared-mime-info">
<mime-type type="application/x-maff">
<comment>maff type</comment>
<magic priority="100">
<match offset="0" type="string" value="PKx03x04" />
</magic>
<glob pattern="*.maff"/>
</mime-type>
</mime-info>
и сохраняются в ~/.local/share/mime/packages. Создано также ~/.local/share/applications/maffapplication.рабочий стол, содержащий
[Desktop Entry]
Type=Application
MimeType=application/x-maff
Name=Maff Handler
Exec=<my home path>/bin/linux/maffHandler
и выполняется
% update-mime-database ~/.local/share/mime/packages/
% update-desktop-database ~/.local/share/applications
Если я сделаю
% gio info x.maff (filtered)
standard::content-type: application/x-maff
standard::fast-content-type: application/x-maff
и если я сделаю
% gio mime application/x-maff
Registered applications:
maffapplication.desktop
Recommended applications:
maffapplication.desktop
кажется, все правильно… но затем xdg-open x.maffне работает, по-прежнему вызывает nautilus … что еще хуже, если я сделаю
% xdg-mime query filetype x.maff
application/zip
Я уверен, что я чего-то не хватает… каким-то образом мне нужно переопределить эту связь между файлом .maff, который начинается с той же магии, что и zip-файл, но безрезультатно… Я пробовал все виды модификаций XML-файла, с помощью магии и без нее, ничего не работает
Кстати, если я сделаю
% maffHandler x.maff
он отлично работает и открывает файл maff в Firefox, я готов поделиться кодом C для этого, если кому-то интересно
Ответ №1:
Кажется, что TDE (Trinity Desktop) неправильно устанавливает две важные переменные среды
setenv XDG_CURRENT_DESKTOP KDE
setenv KDE_SESSION_VERSION 5
Как только они установлены в .login (к сожалению, пришлось выйти из системы и войти снова), xdg-скрипты начали работать должным образом и распознавать типы MIME. Другая проблема заключается в том, что TDE требует, чтобы вы вручную добавили ассоциацию в Центр управления -> Компоненты TDE -> Ассоциации файлов.
После того, как переменные среды правильно установлены для моей среды и установлены ассоциации файлов, все это работает отлично. Спасибо