У меня есть сценарий оболочки «the_script», который я хотел бы зарегистрировать в качестве приложения по умолчанию для файлов с расширением «.ext». Для этой цели я написал XML-файл для регистрации типа MIME и файл .desktop, чтобы связать приложение с MIME-типом. Скрипт имеет исполняемый бит для пользователя и доступен по пути пользователя.
XML-файл с именем «the_script.xml» выглядит следующим образом:
<?xml version="1.0" encoding="UTF-8"?>
<mime-info xmlns="http://www.freedesktop.org/standards/shared-mime-info">
<mime-type type="application/x-the-script">
<comment>A file for the script</comment>
<glob pattern="*.ext"/>
</mime-type>
</mime-info>
Затем я запустил xdg-mime install --novendor the_script.xml
.
Файл .desktop с именем «the_script.desktop» имеет следующий вид:
[Desktop Entry]
Version=1.0
Type=Application
MimeType=application/x-the-script
Name=The script that manages .ext files
Comment=Interpreter for .ext files
TryExec=the_script
Exec=the_script %f
Terminal=false
И я запустил xdg-desktop-menu install --novendor the_script.desktop
, чтобы зарегистрировать файл.
Как только оба файла зарегистрированы, файлы .ext больше не открываются в текстовом редакторе, но Gnome сообщает мне, что не установлено приложение для файлов «Файл для скрипта».
Я успешно зарегистрировал другие форматы файлов в других приложениях. Другие приложения были скомпилированными программами, а the_script - это сценарий оболочки. Это единственное отличие, которое я вижу. Как я могу зарегистрировать свой скрипт в .ext файлах?
Это, кажется, хорошо работает от терминала, если Вы делаете xdg-open foo.ext
, однако это, кажется, не работает в Наутилусе, если Вы не определяете свой сценарий как значение по умолчанию для открытия *.ext файла:
После того, как я сделал это, сценарий, запущенный с Наутилуса.