在Linux中注册文件扩展名/ mime类型

时间:2008-08-27 19:12:37

标签: linux installation mime file-type

我正在开发一个拥有自己文件格式的Linux应用程序。双击这些文件时,我希望我的应用程序打开。

如何注册文件扩展名并将其与Linux上的应用程序相关联?我正在寻找一种标准的方式(适用于基于GNOME和KDE的系统),并且可以在我的程序第一次安装或运行时自动完成。

4 个答案:

答案 0 :(得分:42)

使用freedesktop.org Portland中的xdg-utils

注册MIME类型的图标:

xdg-icon-resource install --context mimetypes --size 48 myicon-file-type.png x-application-mytype

创建配置文件(freedesktop Shared MIME documentation)

<?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文件后,.desktop可用于将应用程序与MIME类型相关联。

答案 1 :(得分:9)

这有两个部分。您需要register a new file type然后create a desktop entry for your application。桌面条目将您的应用程序与新的mime类型相关联。

我认为Gnome和KDE(可能只有4+?)都使用freedesktop shared mime info spec,但我可能错了。

答案 2 :(得分:4)

1)在linux中,这是桌面环境的功能,而不是操作系统本身 2)GNOME和KDE有不同的方法来实现这一点 3)没有什么可以阻止你双管齐下。

答案 3 :(得分:1)

试试这个脚本:需要:

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)