Попытка создать обработчик для файлов .maff в Linux

#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 -> Ассоциации файлов.

После того, как переменные среды правильно установлены для моей среды и установлены ассоциации файлов, все это работает отлично. Спасибо