Ubuntu 20.04 上的文件关联不起作用

Ubuntu 20.04 上的文件关联不起作用

我正在尝试使用 启动我的应用程序xdg-open myFile.axsd。这是我的 StartupLinux.desktop 文件:

[Desktop Entry]
Encoding=UTF-8
Version=1.0
Type=Application
Terminal=true
MimeType=application/x-demo
Name=StartupLinux
Exec=/home/<user>/MyWorkspace/StartupLinux %f

这是我的 application-x-demo.xml 文件

<?xml version="1.0" encoding="UTF-8"?>
<mime-info xmlns="http://www.freedesktop.org/standards/shared-mime-info">
  <mime-type type="application/x-demo">
    <comment>new mime type</comment>
    <glob pattern="*.axsd"/>
  </mime-type>
</mime-info>

如果我运行以下命令:

gio mime application/x-demo

...我得到我的应用程序是 mime 类型的默认应用程序。命令输出:

Default application for “application/x-demo”: StartupLinux.desktop
Registered applications:
        StartupLinux.desktop
Recommended applications:
        StartupLinux.desktop

问题是,如果我运行以下命令:

gio info myFile.axsd | grep "standard::content-type"

命令输出:

标准::内容类型:文本/纯文本

预期的输出是,application/x-demo但我得到的是text/plain,并且打开的是默认文本编辑器而不是我的应用程序。我已经按照这个关联用于文件关联。

注意:StartupLinux 是一个 Gui 应用程序

有什么帮助吗?

答案1

除了@vanadium 回答中的建议之外,请检查您是否已完成以下操作:

  • application-x-demo.xml文件放入目录中$HOME/.local/share/mime/packages。如果目录不存在,则必须创建该目录:
$ mkdir -p $HOME/.local/share/mime/packages/
  • 之后运行以下两个命令:
$ update-mime-database ~/.local/share/mime
$ update-desktop-database ~/.local/share/applications

显然,这个配置只针对当前用户。

有关详细信息,您可以查看为个人用户添加自定义 MIME 类型

答案2

为了使.desktop启动器能够与文件关联, 上的命令必须包含文件名的占位符,即、或字段代码Exec=之一。%f%u%F%U

相关内容