![Ubuntu 20.04 上的文件关联不起作用](https://linux22.com/image/1194579/Ubuntu%2020.04%20%E4%B8%8A%E7%9A%84%E6%96%87%E4%BB%B6%E5%85%B3%E8%81%94%E4%B8%8D%E8%B5%B7%E4%BD%9C%E7%94%A8.png)
我正在尝试使用 启动我的应用程序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