如何在GTK应用中添加x-scheme-handler?桌面文件配置无效求助
- 先检查你的
package.desktop.in文件结构是否合规,必须确保MimeType字段放在[Desktop Entry]段内,同时要有必要的基础字段支撑,比如:
[Desktop Entry]
Type=Application
Name=你的应用名称
Exec=你的应用程序路径 %u
MimeType=x-scheme-handler/xyz;
注意Exec后面的%u是关键,它会把对应的scheme链接作为参数传递给你的应用。
重新生成编译后的.desktop文件
.desktop.in是模板文件,通常需要通过构建工具(比如meson、cmake、intltool)生成最终的.desktop文件。如果是用meson构建的项目,重新执行meson compile或者重新配置项目来更新输出文件。手动安装更新后的.desktop文件
如果开发环境没有自动安装,用desktop-file-install命令把生成的.desktop文件安装到正确目录:desktop-file-install --dir=~/.local/share/applications/ path/to/generated/package.desktop
系统级安装则用sudo指定/usr/share/applications/目录。更新桌面数据库
让系统识别新的MIME类型关联,执行对应命令:
用户级更新:update-desktop-database ~/.local/share/applications/
系统级更新:sudo update-desktop-database /usr/share/applications/验证关联是否生效
运行xdg-mime query default x-scheme-handler/xyz,输出应该是你的应用对应的.desktop文件名,说明关联成功。重启桌面环境或文件管理器
有些桌面环境会缓存MIME关联信息,重启后才能完全生效。
内容的提问来源于stack exchange,提问作者ihsingh2

