Я разрабатываю приложение для Linux с собственным форматом файла. Я хочу, чтобы мое приложение открывалось, когда вы дважды щелкаете по этим файлам.
Как я могу зарегистрировать расширение файла и связать его с моим приложением в Linux? Я ищу способ, который является стандартным (работает с системами на основе GNOME и KDE) и может выполняться автоматически при установке или запуске моей программы в первый раз.





1) в Linux это функция среды вашего рабочего стола, а не самой ОС. 2) GNOME и KDE используют разные методы для достижения этой цели. 3) Вам ничего не мешает делать это в обоих направлениях.
Это состоит из двух частей. Вам нужно зарегистрировать новый тип файла, а затем создать запись на рабочем столе для вашего приложения. Запись на рабочем столе связывает ваше приложение с вашим новым типом MIME.
Я думал, что и Gnome, и KDE (может быть, только 4+?) Использовали Спецификация общей информации mime в freedesktop, но я вполне могу ошибаться.
Используйте xdg-utils от freedesktop.org Портленд.
Зарегистрируйте значок для типа MIME:
xdg-icon-resource install --context mimetypes --size 48 myicon-file-type.png x-application-mytype
Создайте файл конфигурации (Freedesktop Общая документация MIME):
<?xml version = "1.0"?>
<mime-info xmlns='http://www.freedesktop.org/standards/shared-mime-info'>
<mime-type type = "application/x-mytype">
<comment>A witty comment</comment>
<comment xml:lang = "it">Uno Commento</comment>
<glob pattern = "*.myapp"/>
</mime-type>
</mime-info>
Установите файл конфигурации:
xdg-mime install mytype-mime.xml
Это позволяет распознать ваши файлы и связать их со значком. xdg-mime default можно использовать для связывания приложения с типом MIME после установки файла .desktop.
Попробуйте этот сценарий: необходимо:
1. your application icon -> $APP = FIREFOX.png
2. your mimetype icon -> application-x-$APP = HTML.png
в текущем каталоге:
#BASH SCRIPT: Register_my_new_app_and_its_extension.sh
APP = "FOO"
EXT = "BAR"
COMMENT = "$APP's data file"
# Create directories if missing
mkdir -p ~/.local/share/mime/packages
mkdir -p ~/.local/share/applications
# Create mime xml
echo "<?xml version=\"1.0\" encoding=\"UTF-8\"?>
<mime-info xmlns=\"http://www.freedesktop.org/standards/shared-mime-info\">
<mime-type type=\"application/x-$APP\">
<comment>$COMMENT</comment>
<icon name=\"application-x-$APP\"/>
<glob pattern=\"*.$EXT\"/>
</mime-type>
</mime-info>" > ~/.local/share/mime/packages/application-x-$APP.xml
# Create application desktop
echo "[Desktop Entry]
Name=$APP
Exec=/usr/bin/$APP %U
MimeType=application/x-$APP
Icon=$APP
Terminal=false
Type=Application
Categories=
Comment=
"> ~/.local/share/applications/$APP.desktop
# update databases for both application and mime
update-desktop-database ~/.local/share/applications
update-mime-database ~/.local/share/mime
# copy associated icons to pixmaps
cp $APP.png ~/.local/share/pixmaps
cp application-x-$APP.png ~/.local/share/pixmaps
убедись: Бинарный файл FOO находится в / usr / bin (или в $ PATH)
В Ubuntu 9.04 и Fedora Core 10 по умолчанию установлены утилиты xdg.