如何使用xdg-mime命令

26

请问有人能提供一个在GNOME Ubuntu中使用XDG-MIME命令的例子吗?我即使查看了文档也无法让它正常工作。

例如,如果我想将扩展名.mfe注册到名为MyApp的应用程序中,应该怎么做?这是我迄今为止的尝试,我希望能得到正确操作的指引...

这是我的xml文件(MyApp-MyFileType.xml)。文件名与此有何关联?

<?xml version="1.0"?>
<mime-info xmlns='http://www.freedesktop.org/standards/shared-mime-info'>
  <mime-type type="text/mfe">
    <comment>File for MyApp</comment>
    <glob pattern="*.mfe"/>
  </mime-type>
</mime-info>

然后运行这个命令吗?

xdg-mime install MyApp-MyFileType.xml

然后我运行这个? xxx是什么相关的? 我理解它是我的应用程序的标识符,但是我该如何定义它?

xdg-mime default xxx.desktop text/mfe
3个回答

26

所有所需信息都在 man xdg-mime 中。

  1. 使用 xdg-mime query filetype filename.ext 命令检查实际的 MIME 类型(响应可能是例如 application/octet-stream)。

  2. 如果您决定创建自己的 MIME 类型,则应编辑 XML 文件,例如您提供的示例。您应该检查要创建的 MIME 类型名称是否存在,以免覆盖它。您可以在 /usr/share/applications/defaults.list 中查看注册的 MIME 类型。

  3. 然后,像您指出的那样,到了使用 sudo xdg-mime install --mode system MyApp-MyFileType.xml 为所有用户安装的新 MIME 类型的时候。

  4. 此时,如果您再次检查 MIME 类型(如步骤 1. 中所述),您应该会得到所需的响应(即您的新 MIME 类型)。

  5. 现在是将新 MIME 类型与所需的应用程序关联的时候。关联是通过 sudo xdg-mime default MyApp.desktop text/mfe 完成的(根据您的示例)。要查看可用的 .desktop 文件,请执行: ls /usr/share/applications | less (我想这就是您要找的内容)。

  6. 最后一步是使用 xdg-icon-resource 注册图标,但这是另一个主题。

希望这可以帮助您!


1
我会使用 find /usr/share/applications -iname '*xxx*.desktop',因为它可以递归进入子目录,针对 xxx 进行搜索,并且不区分大小写。顺便说一句,KDE 也有一个图形界面来完成这个任务。 - Polv
@Polv 我在 GNU findutils 4.7.0 和 Ubuntu 20.04 LTS 上没有遇到任何问题... - user894319twitter

7
要能够xdg-open afile.myapp,请按以下步骤操作:
  1. 创建文件类型的描述xml文件,就像您所做的那样。
  2. 运行命令xdg-mime install vendor-filetype.xml
  3. 为您的应用程序创建一个myapp.desktop文件,就像这个.desktop示例一样。
  4. 运行命令xdg-mime default myapp.desktop filetype

0

添加一个应用案例,针对组合文件名,因为在这种特定情况下xdg-mime default无法正常工作。


目标:将所有文件*.mybot.json与特殊的专用脚本mybot关联起来,同时保留常规.json文件的默认行为(例如:在Firefox中拖放仍将识别文件为.json,但单击它们将打开预定义的mybot脚本)。

✅ 创建 mybot.xml

<?xml version="1.0"?>
<mime-info xmlns='http://www.freedesktop.org/standards/shared-mime-info'>
  <mime-type type="application/mybot">
    <comment>My Bot json data</comment>
    <glob pattern="*.mybot.json"/>
  </mime-type>
</mime-info>

✅ 创建mybot.desktop文件,并进行测试:

点击它应该启动位于/home/bots/目录下的名为mybot的脚本。

ⓘ 目标脚本mybot必须设置为可执行文件,并且是一个hashbang shell脚本,第一行设置了语言解释器,因为它是由bash启动的。

ⓘ 我们可以使用/usr/share/icons中现有的众多图标之一。

[Desktop Entry]
Version=1.0
Name=mybot
Exec=bash -c '/home/bots/mybot;/bin/bash'
Icon=utilities-terminal
Terminal=true
Type=Application
Categories=Development;

⚠️ 点击一次并将其标记为可信是很重要的。之后图标会发生变化。


✅ 在机器上安装 Mime,文件浏览器将开始识别 *.mybot.json 文件作为 My Bot json data (application/mybot)

sudo xdg-mime install mybot.xml

✅ 然后,只需将 .desktop 启动器复制到 /usr/share/applications 中:

sudo cp mybot.desktop /usr/share/applications

现在举个例子,从您的网站下载或通过电子邮件收到的文件*.mybot.json可以通过本地机器上的给定脚本直接从浏览器快速打开。它允许创建一个自动化的生态系统!

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接