关于安装:在Linux中注册文件扩展名/ MIME类型

关于安装:在Linux中注册文件扩展名/ MIME类型

Register file extensions / mime types in Linux

我正在开发一种具有自己文件格式的Linux应用程序。当您双击那些文件时,我希望打开我的应用。

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


使用freedesktop.org波特兰的xdg-utils

注册MIME类型的图标:

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

创建配置文件(freedesktop共享MIME文档):

1
2
3
4
5
6
7
8
<?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>

安装配置文件:

1
xdg-mime install mytype-mime.xml

这将使您的文件被识别并与图标关联。 xdg-mime default可用于在安装了.desktop文件后将应用程序与MIME类型相关联。


有两个部分。您需要注册一个新的文件类型,然后为您的应用程序创建一个桌面条目。桌面条目将您的应用程序与新的mime类型相关联。

我认为Gnome和KDE(也许只有4个?)都使用了freedesktop共享mime信息规范,但是我很可能是错的。


1)在Linux中,这是桌面环境的功能,而不是os本身的功能。
2)GNOME和KDE有不同的方法来完成此操作。
3)没有什么可以阻止您同时进行。


尝试此脚本:需要:

1
2
1. your application icon -> $APP               = FIREFOX.webp
2. your mimetype icon    -> application-x-$APP = HTML.webp

当前目录中的

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
#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.webp                ~/.local/share/pixmaps
cp application-x-$APP.webp  ~/.local/share/pixmaps

确保:
FOO二进制文件在/ usr / bin(或$ PATH)中


推荐阅读